Aiuto per la codifica - pagina 18

 

Ottenere un errore nell'EA Aiuto necessario

Ottenere solo 1 commercio

Ho bisogno di tutti i trade che sono generati in icustom ARROW

ma

extern string Symbol_1 = "EURUSD";

int magic=9503;

return(0);

int deinit()

{

return(0);

}

datetime newbar;

int start()

{

if(newbar==Time[0])return(0); //

altrimenti newbar=Time[0];

double ArrowUp = iCustom(NULL,0, "NBO-System_v1",2,1,10000,2,1);

double ArrowDown = iCustom(NULL,0, "NBO-System_v1",2,1,10000,3,1);//PERIOD_M5

if (ArrowDown >0 && ArrowDown!=2147483647 && OrdersTotal()==0)//!= EMPTY_VALUE )

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick);

}

if (ArrowUp >0 && ArrowUp!=2147483647 && OrdersTotal()==0)

{

OrderSend(Symbol_1,OP_SELL,0.1, MarketInfo(Symbol_1,MODE_BID), 2, NULL, NULL, "RapidFire", magic, NULL,LimeGreen );

}

return(0);

}

File:
ea.png  22 kb
 
 
Nel tuo EA questa condizione

OrdiniTotali()==0

Se vuoi aprire più di 1 ordine alla volta, rimuovi questa condizione, ma devi aggiungere del codice per evitare di aprire più ordini nella stessa barra (altrimenti ti ritroverai con milioni di ordini aperti). Puoi usare una funzione che assomiglierebbe a questa:

int countOpenedOnACurrentBar()

{

int openedAtBar = 0;

datetime startTime = Time[0];

datetime endTime = Time[0]+Period()*60;

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

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;

if(OrderMagicNumber() != MagicNumber) continue;

if(OrderSymbol() != Symbol()) continue;

if(OrderOpenTime()=endTime) continue;

openedAtBar++;

break;

}

return(openedAtBar);

}

[/PHP]

e poi la tua condizione completa (per l'acquisto) sarebbe come questa :

[PHP]if (ArrowDown >0 && ArrowDown!=2147483647 && countOpenedOnACurrentBar()==0)

Impedirebbe l'apertura di ordini multipli su una stessa barra (questo codice non controlla il tipo di ordine già aperto su una barra corrente, se volete controllare anche quello, dovete aggiungere altre condizioni

vegadigitalco:
Ottenere 1 sola operazione

Ho bisogno di tutto il commercio che è generato in FRECCIA IKEA

ma

extern string Symbol_1 = "EURUSD";

int magic=9503;

return(0);

int deinit()

{

return(0);

}

datetime newbar;

int start()

{

if(newbar==Time[0])return(0); //

altrimenti newbar=Time[0];

double ArrowUp = iCustom(NULL,0, "NBO-System_v1",2,1,10000,2,1);

double ArrowDown = iCustom(NULL,0, "NBO-System_v1",2,1,10000,3,1);//PERIOD_M5

if (ArrowDown >0 && ArrowDown!=2147483647 && OrdersTotal()==0)//!= EMPTY_VALUE )

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick);

}

if (ArrowUp >0 && ArrowUp!=2147483647 && OrdersTotal()==0)

{

OrderSend(Symbol_1,OP_SELL,0.1, MarketInfo(Symbol_1,MODE_BID), 2, NULL, NULL, "RapidFire", magic, NULL,LimeGreen );

}

return(0);

}
 

Molto Molto Grazie per HELPPPPPPPPPPPPPPPP

Molto Molto ThanX per HELPPPPPPPPPPPPPP

Molto Molto ThanX per HELPPPPPPPPPPPPPP

Molto Molto ThanX per HELPPPPPPPPPPPP

Molto Molto ThanX per HELPPPPPPPPPPPPPPP

mladen:
Nel tuo EA questa condizione

OrdiniTotale()==0

Se vuoi aprire più di 1 ordine alla volta, rimuovi questa condizione ma devi aggiungere del codice per evitare di aprire più ordini nella stessa barra (altrimenti ti ritroverai con milioni di ordini aperti). Puoi usare una funzione che assomiglierebbe a questa:
int countOpenedOnACurrentBar()

{

int openedAtBar = 0;

datetime startTime = Time[0];

datetime endTime = Time[0]+Period()*60;

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

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;

if(OrderMagicNumber() != MagicNumber) continue;

if(OrderSymbol() != Symbol()) continue;

if(OrderOpenTime()=endTime) continue;

openedAtBar++;

break;

}

return(openedAtBar);

}

[/PHP]

e poi la tua condizione completa (per l'acquisto) sarebbe come questa:

[PHP]if (ArrowDown >0 && ArrowDown!=2147483647 && countOpenedOnACurrentBar()==0)
Impedirebbe l'apertura di ordini multipli su una stessa barra (questo codice non controlla il tipo di ordine già aperto su una barra corrente, se volete controllare anche questo, dovete aggiungere altre condizioni
File:
 

l'equilibrio è back-testing, live-demo-testing o real-money-trading-balance

EA non ha mai attraversato la mia mente come voci semi-automatiche è abbastanza buono e fresco (semi significa ostacolo supplementare quando si inserisce un ordine, come fly-by-wire, il computer può governare le voci non valido)

ma il ticks-ease è come un anello di fuoco in un videogioco, ci sono solo pochi punti nell'anello in qualsiasi momento, che si può mettere in, altri ti bruciano abbastanza facilmente --- questo non è la condizione del mercato durante gli ultimi 5 a 10 mesi però, le cose diventano più facili

voglio leggere il codice nell'EA qui sopra - ma questi codici sono oltre il mio limite di comprensione

 

bisogno di un allarme nel commercio sopra codificato

Ciao mladen,

grazie per il tuo supporto unico per me

1more cosa, come posso aggiungere il codice di allarme su acquisto o vendita generato nel codice di cui sopra hai suggerito.

Nel mercato live non chiude l'acquisto o la vendita, sta solo creando un nuovo trade.

Grazie in anticipo

 

...

Prova qualcosa come questo (questo è un esempio per il solo acquisto)
if (ArrowDown >0 && ArrowDown!=2147483647 &&countOpenedOnACurrentBar()==0)

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick);

if (!IsTesting()) Alert(Symbol_1+" BUY ordere opened at "+TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS));

}

vegadigitalco:
Ciao mladen,

grazie per il tuo supporto unico per me

1more cosa, come posso aggiungere il codice di allarme su acquisto o vendere generato nel codice di cui sopra hai suggerito.

nel mercato vivo non si chiude acquisto o vendere, la sua solo la creazione di nuovo commercio.

ThanX in Advance
 

Ti dispiace condividere la tua ea qui? Mi piace molto come l'ea prende il commercio.

 

Ciao, mLaden,

Grazie ancora per il tuo grande aiuto:)

Rimane solo 1 problema

nel mercato dal vivo non chiude la precedente posizione di acquisto o vendita, crea solo un nuovo trade. ???

Grazie in ADV

mladen:
Prova qualcosa come questo (questo è un esempio per comprare solo)
if (ArrowDown >0 && ArrowDown!=2147483647 &&countOpenedOnACurrentBar()==0)

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick);

if (!IsTesting()) Alert(Symbol_1+" BUY ordere opened at "+TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS));

}

 

...

vegadigitalco

Devi aggiungere la logica di chiusura nel tuo EA per questo. O usi take profit e stop loss, o usi esplicitamente OrderClose() basato su alcune regole di uscita per questo.

vegadigitalco:
Ciao, mLaden,

Grazie ancora per il tuo grande aiuto:)

Rimane solo 1 problema

nel mercato live non chiude la posizione di acquisto o di vendita precedente, crea solo un nuovo trade. ???

Grazie in ADV