Come codificare? - pagina 23

 
islandrock:
quel codice non fa scadere ogni trade che il mio EA apre a 12 ore dal momento dell'apertura...

Il tempo discadenza dell'ordine funziona solo sugli ordini in sospeso. Se OrderSend() è OP_BUY o OP_SELL, è necessario cronometrare l'ordine nel codice. Ecco un semplice esempio.

int OrderTime;

OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask+TakeProfit*Point,"timetest",16384,0,Green)

OrderTime=TimeCurrent();

int total = OrdersTotal();

for(int cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if((OrderType() <= OP_SELL) && (OrderSymbol() == Symbol()) )

{

if(OrderType()==OP_BUY && TimeCurrent()-OrderTime>(12*60)*60)

{

OrderClose(OrderTicket(),LotsOptimized(),Bid,3,Violet);

}

}

}

Wackena

 

il codice non funziona bene

Ho usato questo per inviarmi via email lo stato del mio account ogni ora. tuttavia dopo averlo compilato e caricato, ha inviato quell'email perfettamente l'ora successiva al minuto 59 come si suppone, poi non ne ha più inviata un'altra. cosa sto facendo di sbagliato? sembra perfetto?

Non mi serve al minuto 59, mi serve solo ogni ora!

bool mail;

int start()

{

if (Minute()>=59 && !mail){

SendMail("Account Status","Account Balance is="+DoubleToStr(AccountBalance(),2)+"_Account Equity is="+DoubleToStr(AccountEquity(),2)+

"_Account Profit is="+DoubleToStr(AccountProfit(),2)+"_Account Margin is="+DoubleToStr(AccountMargin(),2)+

"_Account Free Margin is="+DoubleToStr(AccountFreeMargin(),2));

mail=true;

}

 

forse hai solo bisogno di mettere mail = false ad un certo punto o semplicemente rimuovere questo test sulla variabile mail perché ovviamente il codice attuale invierà solo 1 mail.

 

Quale test sulla variabile mail?... non capisco, per favore spiegatemi...

che ne dite se subito dopo mail=true metto

if (minute()<=58 && !mail)

mail= false;

Pensi che potrebbe funzionare?...

Penso che sia codificato male

 

Penso che tu possa mettere

if (minute()<=58 && mail) // attenzione non !mail ma mail

mail= false;

e questo dovrebbe essere ma fuori dal tuo primo if, quindi non dopo mail = true; ma dopo }

Ci sono probabilmente modi migliori per codificare questo, ma dovrebbe funzionare

 

Proverò...

grazie, ci proverò... vi farò sapere tra due ore

 

grande funziona.... o almeno sembra che lo faccia

 

Ho bisogno di aiuto per questa parte di codice

qualcuno può dirmi come scrivere questo correttamente? sto cercando di individuare le compravendite aperte singolarmente...

cioè: se offerta aperta > 2.

se open ask >2

Ho il resto, ma non riesco a codificare correttamente quella parte

So che è semplice ma mi sto strappando i capelli.

 

Nessuno?

Nessuno? Wow, forse questa era una brutta domanda

 

if(Open[0] > 2){ //open bid

//il tuo codice

}

if(Open[0]+(Ask-Bid) > 2){ //open ask

//il tuo codice

}

a seconda del vostro broker, il backtesting dell'open ask potrebbe non funzionare