PDA

Visualizza Versione Completa : Dovrebbe essere un problema facile per un programmatore esperto :)



Danyhandya
11:35,
Hey! Sto eseguendo più EA su più time frame, ora ho codifio questi EA da solo ... Ho codifio questi EA per inserire solo uno scambio alla volta ... Ma non appena questo trade si è chiuso, voglio che metta in un altro scambio se i paramenters sono ancora corretti, quindi come puoi dire all'EA che il trade appena entrato è stato chiuso? Non puoi usare la funzione TotalOrders () perché questo interferisce con i miei altri EA e le loro operazioni.

Quindi, per favore, puoi aiutarmi a codificare in qualche modo il mio EA per sapere quando il commercio che ha inserito è stato chiuso e deve reinizializzare i suoi parametri e impostare il totale degli scambi a 0 ....


Ricevo anche l'errore: gestore di memoria: impossibile allocare 630.892 byte di memoria ...

qualsiasi idea su come posso cancellare la memoria che il mio EA usa di tanto in tanto e ricaricarla ... Ho abbastanza memoria fisica dato che ho RAM da 16 GB nel mio PC e RAM virtuale da 40 GB quindi non penso che sia davvero la memoria correndo fuori ... qualche idea, qualcuno ha visto questo prima?

Grazie mille !

ecco il codice:
Codice :
// ----------------------------------------------- -------------------
//| Xlr8eSoft Probability Trader.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//|
http://www.metaquotes.net/|
// ----------------------------------------------- -------------------
# copyright di proprietà
link #property
http://www.metaquotes.net/
// ----------------------------------------------- -------------------
//| funzione di inizializzazione di esperti |
// ----------------------------------------------- -------------------
extern int Total_Orders_EA = 1;
extern int Open_Percentage = 80;
extern int Close_Percentage = 40;
extern int Take_Profit = 13;
extern int Stop_Loss = 15;
int PMI;
stringa TI;
comprare;
int vendere;
extern int Max_Order_Count = 5;
doppio slittamento esterno = 3;
extern int Magic_Number = 10810;
doppi extern = 0,05;
int Totale = 0;

int init ()
{
//----


int Totale = 0;


//----
ritorno (0);
}


int start ()
{
//-


iCustom (NULL, 0, MEGATREND PROBABILITY METER II, 13,7,0);




Stampa (GetLastError ());
string Probability_Value = ObjectDescription (prop_value);


PMI = StrToDouble (StringSubstr (Probability_Value, 0, StringLen (Probability_Value) -1));


TI = ObjectDescription (trend_comment_);
Stampa (riuscita n. 4.5);
buy = StringFind (TI, LONG, 0);
sell = StringFind (TI, SHORT, 0);



Stampa (BUYSELL, compra, vendi);


Stampa (PMI, Probability_Value);






se (Total_Orders_EA gt; Total)
{


Stampa (GetLastError ());
if (PMI gt; Open_Percentage compra! = -1)


{

OrderSend (Symbol (), OP_BUY, Lots, Ask, Slippage, Ask - Stop_Loss * Point, Ask Take_Profit * Point, Xlr8eBot, 0,0, Green);
Totale ;


}
}







se (Total_Orders_EA gt; Total)
{
if (PMI gt; Open_Percentage sell! = -1)

{
OrderSend (Symbol (), OP_SELL, Lots, Bid, Slippage, Bid Stop_Loss * Point, Ask - Take_Profit * Point, Xlr8eBot, 0,0, Red);


Totale ;

}
}


//----
ritorno (0);
}

// ----------------------------------------------- -------------------

Pyilin
18:43,
int TradeCount = 0; for (int T = OrdersTotal (); T gt; = 0; T--) {OrderSelect (T, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber () == MagicNumber [Altri criteri di qualificazione commerciale]) TradeCount ; } Lì, non era così difficile.

Danyhandya
20:03,
lol come ho detto programmatori esperti grazie un sacco! lo proverò!

Danyhandya
21:24,
int TradeCount = 0; for (int T = OrdersTotal (); T gt; = 0; T--) {OrderSelect (T, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber () == MagicNumber [Altri criteri di qualificazione commerciale]) TradeCount ; } Lì, non era così difficile.
Sono solo preoccupato perché come faccio a riportare lo scambio a 0 per l'intero ciclo per ricominciare .....?

ehlahya96
22:45,
Sono solo preoccupato perché come faccio a riportare lo scambio a 0 per l'intero ciclo per ricominciare .....?
MetaTrader è un'applicazione a 32 bit. Può utilizzare solo 2 GB dei tuoi 16 GB di RAM. Non c'è modo di aggirarlo.

Pyilin
00:06,
Sono solo preoccupato perché come faccio a riportare lo scambio a 0 per l'intero ciclo per ricominciare .....?
Viene sempre ripristinato a 0 ogni volta che inizia il ciclo for