Aiuto per la codifica - pagina 554

 

Mntiwana, su Bar to Use se metti zero prenderà segnali sulla barra ancora aperta (pericoloso per un EA, IMHO) se maggiore di zero l'EA prenderà segnali da barre chiuse indietro dalla barra aperta, quindi se hai BarToUse = 2, allora il tuo EA controllerà 2 barre indietro.

 

ciao mladen....per favore aiutami....ı è stato postato ma ı immagino che tu non possa vedere...ok...ı ho un indicatore...ı ho bisogno della versione histo.grazie mille

File:
trend.ex4  9 kb
trend.mq4  2 kb
 
aress:
ciao mladen....per favore aiutami....ı è stato postato ma ı immagino che non puoi vedere...ok...ı ho un indicatore ottenuto...ı ho bisogno della versione histo.grazie mille

aress

Hai il codice sorgente originale (non decompilato) dell'indicatore? Se sì, si prega di postare il file originale mq4 in modo che possa essere lavorato

_________________

PS: puoi anche controllare questo https://www.mql5.com/en/forum/174961/page4 Per quanto vedo è così

 

Ciao ragazzi,

Per favore date un'occhiata al mio codice.

Questo indicatore chiama un altro indicatore con la funzione icustom.

Il problema che sto avendo è che, a volte, anche quando le condizioni per i segnali non sono soddisfatte,

questo indicatore produce comunque falsi allarmi sonori e questi falsi allarmi non visualizzano le frecce.

Non so dove sia il problema. Ho provato (con le mie limitate conoscenze) ma senza successo.

Come fare in modo che i falsi allarmi si fermino? Come mi assicuro che l'allarme sonoro arrivi solo se c'è una freccia?

Per favore aiutatemi.

Grazie.

int start()

{

int counted_bars=IndicatorCounted();

//----

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

int j;

for(int i=limite; i>=0; i--)

{

arr_up = EMPTY_VALUE; arr_dn = EMPTY_VALUE;

j=i;

doppio var1 = 0;

doppio var2 = 0;

for (j = i; j <= i + 9; j++) var2 += MathAbs(High[j] - Low[j]);

var1 = var2 / 10.0;

double sellprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,signal,price,0,i);

double buyprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,signal,price,1,i);

statico datetime LastAlert;

datetime curbar = Time[0];

if (buyprevious !=EMPTY_VALUE )

{

arr_up=iLow(Symbol(),0,i) - (var1/2);

DrawLine("EntryLine11",iHigh(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !upalert){

Alert (Symbol()," ",Period(), "BUY");

upalert=true;

downalert=falso;

LastAlert =curbar;

}

}

else if(sellprevious !=EMPTY_VALUE )

{

arr_dn=iHigh(Symbol(),0,i) + (var1/2);

DrawLine("EntryLine11",iLow(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !downalert){

Alert (Symbol()," ",Period(), "SELL");

downalert=true;

upalert=false;

LastAlert = curbar;

}

}

}

 
luffy:
Ciao ragazzi,

Per favore date un'occhiata al mio codice.

Questo indicatore chiama un altro indicatore con la funzione icustom.

Il problema che sto avendo è che, a volte, anche quando le condizioni per i segnali non sono soddisfatte,

questo indicatore produce comunque falsi allarmi sonori e questi falsi allarmi non visualizzano le frecce.

Non so dove sia il problema. Ho provato (con le mie limitate conoscenze) ma senza successo.

Come fare in modo che i falsi allarmi si fermino? Come mi assicuro che l'allarme sonoro arrivi solo se c'è una freccia?

Per favore aiutatemi.

Grazie.

int start()

{

int counted_bars=IndicatorCounted();

//----

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

int j;

for(int i=limite; i>=0; i--)

{

arr_up = EMPTY_VALUE; arr_dn = EMPTY_VALUE;

j=i;

doppio var1 = 0;

doppio var2 = 0;

for (j = i; j <= i + 9; j++) var2 += MathAbs(High[j] - Low[j]);

var1 = var2 / 10.0;

double sellprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,signal,price,0,i);

double buyprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,signal,price,1,i);

statico datetime LastAlert;

datetime curbar = Time[0];

if (buyprevious !=EMPTY_VALUE )

{

arr_up=iLow(Symbol(),0,i) - (var1/2);

DrawLine("EntryLine11",iHigh(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !upalert){

Alert (Symbol()," ",Period(), "BUY");

upalert=true;

downalert=false;

LastAlert =curbar;

}

}

else if(sellprevious !=EMPTY_VALUE )

{

arr_dn=iHigh(Symbol(),0,i) + (var1/2);

DrawLine("EntryLine11",iLow(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !downalert){

Alert (Symbol()," ",Period(), "SELL");

downalert=true;

upalert=false;

LastAlert = curbar;

}

}

}

luffy

Puoi per favore postare anche l'indicatore chiamato, in modo che possa essere testato?

 
mrtools:
Mntiwana, su Bar to Use se metti zero prenderà segnali sulla barra ancora aperta (pericoloso per un EA, IMHO) se maggiore di zero l'EA prenderà segnali da barre chiuse indietro dalla barra aperta, quindi se hai BarToUse = 2, allora il tuo EA controllerà 2 barre indietro.

Carissimi MLADEN e MRTOOLS,

grazie per i gentili aiuti, scusate se vi ho rubato molto tempo, chiedendo così tanto ....... .......so nel caso di questo EA, cosa è meglio e adatto, quale barra dovrebbe essere aggiunta.....i voglio quando la linea MA lenta attraversata completamente dalla linea MA veloce (in entrambi i modi) ......... sulla seconda barra successiva, il commercio dovrebbe essere eseguito, possiamo codificare in questo modo che dopo l'attraversamento, quante barre dopo il commercio potrebbe essere eseguito, per esempio dopo l'attraversamento sulla prima barra, dopo l'attraversamento sulla seconda o terza barra? le immagini sono allegate per spiegare meglio la domanda, grazie

saluti

File:
7.png  35 kb
8.png  38 kb
 

Ecco gli indicatori.

Grazie.

File:
 
mrtools:
Mntiwana, su Bar to Use se metti zero prenderà segnali sulla barra ancora aperta (pericoloso per un EA, IMHO) se maggiore di zero l'EA prenderà segnali da barre chiuse indietro dalla barra aperta, quindi se hai BarToUse = 2, allora il tuo EA controllerà 2 barre indietro.

Caro MRTOOLS,

intendevi .... bar da usare = 2 ...... 2 bar dopo l'incrocio...non 2 N bar, quando scrivi Bars BACK, mi sono confuso, colpa mia....per favore correggimi. grazie.

saluti

 
mntiwana:
Caro MRTOOLS,

significa che .... barra da utilizzare = 2 ...... 2 bar dopo l'attraversamento ... non 2 barre N, quando si scrive Bars BACK, ho confuso, la mia colpa....per favore correggimi. grazie.

saluti

mntiwana

No, ma quando barre da usare == 2, allora l'incrocio sarà controllato a 2 barre dalla barra corrente - non controllerà l'incrocio alla barra corrente. Quindi, con un ritardo di 2 barre

 
mladen:
mntiwana No, ma quando le barre da usare == 2, allora l'attraversamento sarà controllato a 2 barre dalla barra corrente - non controllerà l'attraversamento alla barra corrente. Quindi, con un ritardo di 2 barre

Carissimo MLADEN,

Grazie capo, quindi in questo caso, il codice potrebbe essere così? Per favore correggimi,

saluti

===================================================================

codice originale "semplice MA cross EA

//

#define _doNothing 0

#define _doBuy 1

#define _doSell 2

int start()

{

int doWhat = _doNothing;

double diffc = iMA(NULL,0,Ma1Period,0,Ma1Method,Ma1Price,BarToUse) -iMA(NULL,0,Ma2Period,0,Ma2Method,Ma2Price,BarToUse);

double diffp = iMA(NULL,0,Ma1Period,0,Ma1Method,Ma1Price,BarToUse+1)-iMA(NULL,0,Ma2Period,0,Ma2Method,Ma2Price,BarToUse+1);

se ((diffc*diffp)<0)

se (diffc>0)

doWhat = _doBuy;

altrimenti doWhat = _doSell;

se (doWhat==_doNothing) return(0);

//

================================================

modificato in questo modo

#define _doNothing 0

#define _doBuy 1

#define _doSell 2

int start()

{

int doWhat = _doNothing;

double diffc = iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma1Period,Ma1Price,2,0 ,0,BarToUse)

-iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma2Period,Ma2Price,2,0 ,0,BarToUse);

double diffp = iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma1Period,Ma1Price,2,0 ,0,BarToUse==2)

-iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma2Period,Ma2Price,2,0 ,0,BarToUse==2);

se ((diffc*diffp)<0)

se (diffc>0)

doWhat = _doBuy;

altrimenti doWhat = _doSell;

se (doWhat==_doNothing) return(0);

//

=====================================

File:
9.png  108 kb
Motivazione: