Aiuto per la codifica - pagina 423

 

mladen,

Ho fatto il cambiamento nel numero 144 e ho unificato il numero magico, "MagicNumber" attraverso i simboli istanze....It è ora prendere un massimo di 5 operazioni alla volta, ma ora ripete le operazioni sullo stesso simbolo allo stesso tempo, ad esempio, se ricevere un segnale di trading SELL su EURUSD, sarà posto che EURUSD vendere ordine 5 volte. Vedi l'immagine dell'ordine live che ha preso così:

mladen:
Se volete che abbia al massimo 5 ordini su tutti i simboli, andate alla linea 144(if( OrderSymbol() != Symbol() ) continue;) e cancellatelo. E mantieni lo stesso numero magico per tutte le istanze su tutti i simboli (così può contare gli ordini aperti solo da quell'EA su tutti i simboli)
File:
 
Mastercash:
mladen, ho fatto il cambiamento nel numero 144 e ho unificato il numero magico, "MagicNumber" attraverso i simboli istanze....It è ora prendere un massimo di 5 mestieri alla volta, ma ora ripete i mestieri sullo stesso simbolo allo stesso tempo, ad esempio, se ricevere un segnale di trading SELL su EURUSD, sarà posto che EURUSD vendere ordine 5 volte. Vedi l'immagine dell'ordine live che ha preso in questo modo:

Si prega di leggere il mio post precedente

Quell'apertura non ha niente a che fare con la mancanza di controllo del simbolo - devi avere un controllo aggiuntivo per disabilitare gli ordini di apertura sullo stesso simbolo e sulla stessa barra. Se hai lo stesso EA sullo stesso simbolo e su diversi time frame, allora nemmeno quel controllo ti aiuterebbe (dato che le barre saranno diverse in alcuni casi per diversi time frame dello stesso simbolo)

 

Grazie mille mladen,

Ho provato ad aggiungere un codice che mi hai pensato qualche anno fa.... ma sembra non funzionare.....il codice se ti ricordi va in questo modo...

static datetime lastAlerted=0;

if(lastalerted!=Time[0];

open().......

gentilmente aiutatemi ad aggiungere il codice giusto al posto giusto!

mladen:
Questo non dipende da quella parte di codice Devi aggiungere un controllo nel resto del codice per non aprire un ordine alla stessa barra e allo stesso simbolo
 
Mastercash:
Grazie mille mladen,

Ho provato ad aggiungere un codice che mi hai pensato qualche anno fa.... ma sembra non funzionare.....il codice se ti ricordi va in questo modo...

static datetime lastAlerted=0;

if(lastalerted!=Time[0];

open().......

aiutami gentilmente ad aggiungere il codice giusto al posto giusto!

Mastercash

Come ho detto nel post precedente: se attacchi quell'EA allo stesso simbolo e a diversi time frame non c'è modo di impedire a un EA con time frame inferiore di aprire un ordine sulla barra corrente del time frame superiore (che ha già un ordine aperto).

Dovresti scansionare tutte le barre correnti dei time frame, che tradotto arriva alla barra corrente del time frame più alto - ma anche allora non hai idea di quale time frame abbia aperto la barra

Potresti usare il campo di commento dell'ordine per marcarlo, ma il campo di commento può essere cambiato dal broker quindi non c'è un modo affidabile per farlo

 

ok signore...

ma non ho mai fatto il mio ea multi time frames.Comunque ho allegato il codice qui sotto..gentilmente aiutatemi con un aggiustamento per questo trading ripetuto sulla stessa valuta da fermare: e se ho bisogno di fare qualche impegno extra per farlo, potete lrt me sapere da inbox me.tnks

mladen:
Mastercash

Come ho detto nel post precedente: se attacchi quell'EA allo stesso simbolo e a diversi time frame non c'è modo di impedire che un EA con time frame inferiore apra un ordine sulla barra corrente del time frame superiore (che ha già un ordine aperto).

Dovresti scansionare tutte le barre correnti dei time frame, che tradotto arriva alla barra corrente del time frame più alto - ma anche allora non hai idea di quale time frame abbia aperto la barra

Potresti usare il campo di commento dell'ordine per marcarlo, ma il campo di commento può essere cambiato dal broker quindi non c'è un modo affidabile per farlo
File:
 
Mastercash:
ok signore...ma non ho mai fatto il mio ea multi time frame.Comunque ho allegato il codice qui sotto...mi aiuti gentilmente con un aggiustamento per questo trading ripetuto sulla stessa valuta da fermare: e se ho bisogno di fare qualche impegno aggiuntivo per farlo, può lrt me sapere da inbox me.tnks

In realtà quell'EA è un EA multi time frame (usa indicatori su dati a 5 minuti) ma non importa: qui hai una versione che non permette di aprire più di un ordine per barra nicetrader_1.021.mq4

File:
 

Ciao a tutti,

qualcuno può aiutarmi a codificare un semplice ea basato sull'indicatore xcode, dato che sono un noob nella codifica.

Ho solo bisogno di ordini di acquisto e vendita dopo la chiusura della barra del segnale, l'opzione di cambiamento del periodo del segnale dell'indicatore, le ore di trading e l'opzione di cambiamento dei giorni di trading.

Gli ordini di acquisto e vendita sono semplici come descritto nello screenshot. qualsiasi timeframe, qualsiasi coppia, opzione take profit, opzione trailing stop.

So che non è il Santo Graal ed è lontano da esso (come il Santo Graal non esiste ), ma possiamo cercare di ottenere qualcosa da questo.

Anche se è possibile aggiungere l'opzione di aumento della dimensione del lotto (da cambiare manualmente). per esempio: 0.01,0.01,0.02,0.02,0.04,0.04,0.08,0.08 e così via...

File:
xcode.jpg  346 kb
xcode.mq4  11 kb
 
mladen:
TFI

Prova qualcosa del genere:

extern double maxshorttrades = 2;

extern double maxlongtrades = 2;

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

//

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

int clongs = 0;

int cshorts = 0;

for (i=OrdersTotal()-1;i>=0; i--)

{

if(OrderType()==OP_BUY) clongs++; // Check Long Traded Positions.

if(OrderType()==OP_SELL) cshorts++; // Check Short Traded Positions.

}

if(trendc!=trendp)

{

if(clongs < maxlongtrades && trendc== 1 && (CCIFilter<80)) OpenBuy();

if(cshorts 80)) OpenSell();

// Check the CCI condition

// it is not symetrical to buy condition

}

Ciao Mladen,

grazie mille per il tuo aiuto! Ho implementato il tuo codice come suggerito.

Ora funziona

Posso probabilmente farti un'altra breve domanda?

Cosa ne pensi del filtro CCI, è l'approccio giusto per filtrare i mercati laterali in questo caso?

Dovrei dargli un range come (CCIFilter>80 && CCIFilter<100)

Forse potreste consigliarmi?

if(openedOrders<=0)

{

double CCIFilter=iCCI(NULL,0,CCIPeriod,CCIMethod,0);

double trendc = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1); //buffer, signal candle, up

double trendp = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2); //buffer, signal candle, down

int clongs = 0;

int cshorts = 0;

for(i=OrdersTotal()-1;i>=0; i--)

{

if(OrderType()==OP_BUY) clongs++; // Check Long Traded Positions.

if(OrderType()==OP_SELL) cshorts++; // Check Short Traded Positions.

}

if(trendc!=trendp)

{

if(clongs 80)) OpenBuy(); // (CCIFilter>80 && CCIFilter<100) maybe better?

if(cshorts < maxshorttrades && trendc==-1 && (CCIFilter<-80)) OpenSell(); //(CCIFilter-100)

// Check the CCI condition

// it is not symetrical to buy condition

}

}

P.S, spero che non siate stati colpiti dal fallimento di Alpari, c'è una certa turbolenza.

Grazie in anticipo e buon fine settimana!

Con cordiali saluti,

TFI

File:
backtest2.jpg  160 kb
 
tfi_markets:
Ciao Mladen,

Grazie mille per il tuo aiuto! Ho implementato il tuo codice come suggerito.

Ora funziona

Posso probabilmente farti un'altra breve domanda?

Cosa ne pensi del filtro CCI, è l'approccio giusto per filtrare i mercati laterali in questo caso?

Dovrei dargli un range come (CCIFilter>80 && CCIFilter<100)

Forse potreste consigliarmi?

if(openedOrders<=0)

{

double CCIFilter=iCCI(NULL,0,CCIPeriod,CCIMethod,0);

double trendc = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1); //buffer, signal candle, up

double trendp = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2); //buffer, signal candle, down

int clongs = 0;

int cshorts = 0;

for(i=OrdersTotal()-1;i>=0; i--)

{

if(OrderType()==OP_BUY) clongs++; // Check Long Traded Positions.

if(OrderType()==OP_SELL) cshorts++; // Check Short Traded Positions.

}

if(trendc!=trendp)

{

if(clongs 80)) OpenBuy(); // (CCIFilter>80 && CCIFilter<100) maybe better?

if(cshorts < maxshorttrades && trendc==-1 && (CCIFilter<-80)) OpenSell(); //(CCIFilter-100)

// Check the CCI condition

// it is not symetrical to buy condition

}

}

P.S, spero che non siate stati colpiti dal fallimento di Alpari, c'è una certa turbolenza.

Grazie in anticipo e buon fine settimana!

Con cordiali saluti,

TFI

TFI

Di Alpari : sono loro cliente da molto tempo. Ma chiudo i miei conti di tanto in tanto (quando viene raggiunta quella che considero una massa critica) e questa volta ho chiuso il mio conto con loro circa un mese fa, e non ne ho aperto uno nuovo (avendo anche un conto ancora aperto con un altro broker). Francamente, anche se sono stato fortunato e non sono stato affatto colpito da ciò che è successo, devo dire che sono triste per quello che è successo a loro: non ho mai avuto alcun problema (nemmeno un piccolo problema) con loro, e nei casi in cui alcune cose avevano bisogno di chiarimenti o correzioni lo hanno sempre fatto in modo tempestivo

_______________________

Del filtro CCI: di solito i valori tra -100 e +100 sono considerati una "zona normale" per il CCI (che significherebbe ranging) ma molti trader fanno trading sul CCI esclusivamente su un cross zero con il parametro di lunghezza predefinito (14) impostato. Questo aumenta la possibilità di essere colpiti da un whipsaw, ma quelli che usano lo zero cross di solito lo usano su time frame brevi. Per evitare quel periodo di utilizzo, imposta il periodo su un periodo più lungo (prova 50 per esempio) che è un'impostazione abbastanza buona per i segnali zer cross su un sacco di simboli e time frame

 
mladen:
TFI

Di Alpari: sono stato loro cliente per molto tempo. Ma chiudo i miei conti di tanto in tanto (quando quello che considero una massa critica è raggiunto) e questa volta ho chiuso il mio conto con loro circa un mese fa, e non ne ho aperto uno nuovo (avendo anche un conto ancora aperto con un altro broker). Francamente, anche se sono stato fortunato e non sono stato affatto colpito da ciò che è successo, devo dire che sono triste per quello che è successo a loro: non ho mai avuto alcun problema (nemmeno un piccolo problema) con loro, e nei casi in cui alcune cose avevano bisogno di chiarimenti o correzioni lo hanno sempre fatto in modo tempestivo

_______________________

Del filtro CCI: di solito i valori tra -100 e +100 sono considerati una "zona normale" per il CCI (che significherebbe ranging) ma molti trader fanno trading sul CCI esclusivamente su uno zero cross con un parametro di lunghezza predefinito (14). Questo aumenta la possibilità di essere colpiti da un whipsaw, ma quelli che usano lo zero cross di solito lo usano su time frame brevi. Per evitare quel periodo di utilizzo, impostate il periodo su un periodo più lungo (provate con 50 per esempio) che è un'impostazione abbastanza buona per i segnali zer cross su molti simboli e time frame

Ciao Mladen,

Vorrei ringraziarti ancora una volta per il tuo aiuto. Sei molto competente. Lo apprezzo molto, le persone che aiutano e condividono la conoscenza sono abbastanza rare al giorno d'oggi. Implementerò e testerò anche i tuoi suggerimenti sull'ICC.

Fortunatamente non sono stato colpito dal caso Alpari perché sto ancora sviluppando il mio EA (dovrebbe fare trading mentre sono in ufficio e generare qualche reddito extra per me e la mia famiglia). Ho usato Alpari come piattaforma di test, perché hanno lasciato il conto demo aperto per un tempo illimitato. Ho aperto un conto con IG markets qualche giorno fa, ma non ho ancora trasferito denaro. Ho bisogno di avere l'EA in esecuzione affidabile e senza bug prima.

Tutto il meglio per voi e continuate il vostro grande lavoro!

Con cordiali saluti,

TFI