Come codificare? - pagina 19

 

Grazie per il tuo sforzo Nicholishen. Purtroppo non ha funzionato. Sta modificando gli ordini ma in entrambi i modi. Quello che voglio dire solo per la chiarificazione è in una situazione di acquisto che sposterà l'arresto verso l'alto dai punti di traccia, ma lo sposterà anche verso il basso.

 

Capisco cosa vuoi dire, ma il codice è corretto. O c'è un altro EA che sta modificando questi ordini o c'è un altro codice nell'EA che lo sta facendo, perché sicuramente non è questo codice. Dovrai fermare tutti gli altri EA e controllare il codice dell'EA primario per altre chiamate a OrderModify()

Buona fortuna =)

File:
 

Grazie per il vostro tempo con il mio io noobish

L'unica altra modifica di ordine nel codice è un break even e lock pips. lo allegherò.

BEx=quantità di pips da bloccare

Sono stato attraverso di essa così tante volte im sicuro che sta guardando proprio a me, ma io non sono un professionista, un hack al meglio.

Grazie ancora Nicholishen!

void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...

{

if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}

Oh dimenticato di aggiungere, questo è l'unico EA. Attualmente solo backtesting.

 
C.E.O.:
Grazie per il vostro tempo con il mio noobish

L'unica altra modifica dell'ordine nel codice è un break even e lock pips.

BEx=quantità di pips da bloccare

Sono stato attraverso di essa così tante volte im sicuro che sta guardando proprio a me, ma io non sono un professionista, un hack al meglio.

Grazie ancora Nicholishen!

void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...

{

if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}[/PHP]

Oh forgot to add, this is the only EA. Just currently backtesting.

Probabilmente ciò che sta accadendo è che una funzione sta annullando l'altra. Dovrai controllare la tua logica in modo che solo una funzioni alla volta.

[PHP]void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // guarda solo se mygrid e symbol...

{

if (OrderType() == OP_BUY)

{

if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT))

{

se (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}

if (OrderType() == OP_SELL)

{

if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT))

{

se (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}

}

}

return;

}
 

Comandi/codice di verifica MQL4

Messaggio cancellato. Ci scusiamo per l'inconveniente.

 

Codice per 'Permettere il trading dal vivo

Ciao, per far funzionare gli EA dobbiamo abilitare l'opzione 'Allow live trading', quindi invece di doverla spuntare sempre quando si carica l'EA che linea di codice devo aggiungere per avere automaticamente questa opzione abilitata nell'EA?

Grazie

 

Non hai bisogno di codice per farlo.

matrixebiz:
Ciao, per far funzionare gli EA dobbiamo abilitare l'opzione 'Consenti trading dal vivo', quindi invece di doverla spuntare ogni volta quando si carica l'EA che linea di codice devo aggiungere per avere automaticamente questa opzione abilitata nell'EA? Grazie

Ciao Matrixebiz,

Puoi farlo facilmente andando nel menu di MetaTrader. Vai su "Strumenti" poi "Opzioni" (o semplicemente digita CRTL-O). Poi, nella scheda "Expert Advisor", spunta l'opzione Consenti trading dal vivo. Ecco fatto, tutti gli EA che attaccherai dopo saranno autorizzati al live trading.

-RJ1-

 

Oh, ok, è stato facile Grazie

 

Codice orario EA

Voglio un codice orario EA. Esempio che abiliti solo il trading 18:00-1:00. È possibile?

 

Ho trovato questo

se (UseHourTrade){

if(!(Ora()>=DaOraTrade&&Ora()<=DaOraTrade)){

Comment("Ore non di trading!");

return(0);

Una domanda:

Usa l'orario del mio broker forex: Sì o No?

Penso di sì, ma voglio essere sicuro

E come posso metterci i minuti come 15:30? Ci sono solo ore?