Come codificare? - pagina 70

 

Bisogno di aiuto

................

 
SIDDESH:
Ciao,

Puoi per favore dare il codice per la barra precedente.

Questo può essere usato nell'EA per limitare il piazzamento degli ordini quando la barra precedente è più alta di una certa altezza.

Saluti,

SIDDESH

Siddesh e altri che possono aiutare:

Il codice per la barra precedente è qui sotto:

//per comprare

double indicatorpast = icustom(....................,1);

doppio indicatornow = icustom(....................,0);

se (close[1]indicatornow) OpenBUY();

se (close[1]>indicatorpast && close[0]<indicatornow) OpenSELL();

ma con questo satatement, l'esperto apre posizioni non solo quando il prezzo incrocia l'indicatore, ma apre anche posizioni sopra l'indicatore. Voglio che l'esperto apra la posizione SOLO quando incrocia l'indicatore, quindi ho provato questo:

//per comprare

double indicatorpast = icustom(....................,1);

doppio indicatornow = icustom(....................,0);

se (close[1]<indicatorpast && close[0]==indicatornow) OpenBUY();

se (close[1]>indicatorpast && close[0]==indicatornow) OpenSELL();

Ma questa dichiarazione non funziona.

Sapete cosa succede? Perché penso che non ci siano errori nella dichiarazione.

La domanda è perché non si apre nel punto esatto della croce quando close[0]==Indicatornow? Se la funzione fosse con ==, impediremmo l'apertura di ordini sopra il punto di incrocio tra l'indicatore e la chiusura della barra attuale, ma non funziona con questo tipo di relazione tra le variabili.

 

Persone che possono aiutare:

Il codice per la barra precedente è qui sotto:

//per comprare

double indicatorpast = icustom(....................,1);

double indicatornow = icustom(....................,0);

se (close[1]indicatornow) OpenBUY();

se (close[1]>indicatorpast && close[0]<indicatornow) OpenSELL();

ma con questo satatement, l'esperto apre posizioni non solo quando il prezzo incrocia l'indicatore, ma apre anche posizioni sopra l'indicatore. Voglio che l'esperto apra la posizione SOLO quando incrocia l'indicatore, quindi ho provato questo:

//per comprare

double indicatorpast = icustom(....................,1);

doppio indicatornow = icustom(....................,0);

se (close[1]<indicatorpast && close[0]==indicatornow) OpenBUY();

se (close[1]>indicatorpast && close[0]==indicatornow) OpenSELL();

Ma questa dichiarazione non funziona.

Sapete cosa succede? Perché penso che non ci siano errori nella dichiarazione.

La domanda è perché non si apre nel punto esatto della croce quando close[0]==Indicatornow? Se la funzione fosse con ==, impediremmo l'apertura di ordini sopra il punto di incrocio tra l'indicatore e la chiusura della barra attuale ma non funziona con questo tipo di relazione tra le variabili.

Avete sperimentato lo stesso problema? Qualcuno sa come risolverlo?

Grazie ancora.

 
la totona:
Persone che possono aiutare:

Il codice per la barra precedente è qui sotto:

//per comprare

double indicatorpast = icustom(....................,1);

double indicatornow = icustom(....................,0);

se (close[1]indicatornow) OpenBUY();

se (close[1]>indicatorpast && close[0]<indicatornow) OpenSELL();

ma con questo satatement, l'esperto apre posizioni non solo quando il prezzo incrocia l'indicatore, ma apre anche posizioni sopra l'indicatore. Voglio che l'esperto apra la posizione SOLO quando incrocia l'indicatore, quindi ho provato questo:

//per comprare

double indicatorpast = icustom(....................,1);

doppio indicatornow = icustom(....................,0);

se (close[1]<indicatorpast && close[0]==indicatornow) OpenBUY();

se (close[1]>indicatorpast && close[0]==indicatornow) OpenSELL();

Ma questa dichiarazione non funziona.

Sapete cosa succede? Perché penso che non ci siano errori nella dichiarazione.

La domanda è perché non si apre nel punto esatto della croce quando close[0]==Indicatornow? Se la funzione fosse con ==, impediremmo l'apertura di ordini sopra il punto di incrocio tra l'indicatore e la chiusura della barra attuale ma non funziona con questo tipo di relazione tra le variabili.

Avete sperimentato lo stesso problema? Qualcuno sa come risolverlo?

Grazie ancora.

Perché stai cercando una corrispondenza esatta tra un valore in virgola mobile a 8 cifre restituito e il prezzo - non saranno quasi mai uguali con risoluzioni del genere. Basta controllare per una condizione maggiore di o minore di.

 

software swicthing

Ciao ragazzi, avrei bisogno di trasformare questo indicatore o il sistema di trading relativo in lingua mql perche' questo funziona su metatrader 4. Sto cambiando broker e software, qualcuno puo' aiutarmi?

{Calcolo della media mobile a regressione espansa}

{BEGINNING}

{"-HShift" - BARRE AVANTI}

DataBars:= Ref(Price,- HShift);

e1:= Mov(DataBars,PeriodMA,TypeMA);

e2:= Mov(e1,PeriodMA,TypeMA);

e3:= Mov(e2,PeriodMA,TypeMA);

e4:= Mov(e3,PeriodMA,TypeMA);

e5:= Mov(e4,PeriodMA,TypeMA);

e6:= Mov(e5,PeriodMA,TypeMA);

c1:= -b*b*b;

c2:= 3*b*b+3*b*b*b;

c3:= -6*b*b-3*b-3*b*b*b*b;

c4:= 1+3*b+b*b*b+3*b*b;

MV:= c1*e6+c2*e5+c3*e4+c4*e3;

{Calcolo del tempo di vita MV

per eliminare la distorsione dei valori iniziali}

{Media mobile T3}

e1:= Mov(Pr,PeriodoMA1,TipoMA1);

e2:= Mov(e1,PeriodoMA1,TipoMA1);

e3:= Mov(e2,PeriodoMA1,TipoMA1);

e4:= Mov(e3,PeriodoMA1,TipoMA1);

e5:= Mov(e4,PeriodoMA1,TipoMA1);

e6:= Mov(e5,PeriodoMA1,TipoMA1);

c1:= -b1*b1*b1;

c2:= 3*b1*b1+3*b1*b1*b1

c3:= -6*b1*b1-3*b1-3*b1*b1*b1*b1;

c4:= 1+3*b1+b1*b1*b1+3*b1*b1;

MA1:= c1*e6+c2*e5+c3*e4+c4*e3;

{Trend su e giù}

UpTrend:=Mv>=MA1;

DownTrend:=MA1>=Mv;

{Segnale Lungo e Corto}

Long:= cross(Mv,MA1) e Mv>=MA1;

Short:= cross(MA1,Mv) e MA1>=Mv;

{OpenBuy e CloseBuy}

OpenBuy:= cross(Mv,MA1) e Mv>=MA1;

CloseBuy:= cross(MA1,Mv) e MA1>=Mv;

{OpenSell e CloseSell}

OpenSell:= cross(MA1,Mv) e MA1>=Mv;

CloseSell:= cross(Mv,MA1) e Mv>=MA1;

 
bobo10:
Ciao ragazzi, avrei bisogno di trasformare questo indicatore o il sistema di trading relativo in lingua mql perché questo funziona su metatrader 4. Sto cambiando broker e software, qualcuno puo' aiutarmi?

{T3 media mobile}

e1:= Mov(Pr,PeriodMA1,TypeMA1);

e2:= Mov(e1,PeriodoMA1,TipoMA1);

e3:= Mov(e2,PeriodoMA1,TipoMA1);

e4:= Mov(e3,PeriodoMA1,TipoMA1);

e5:= Mov(e4,PeriodoMA1,TipoMA1);

e6:= Mov(e5,PeriodoMA1,TipoMA1);

c1:= -b1*b1*b1;

c2:= 3*b1*b1+3*b1*b1*b1

c3:= -6*b1*b1-3*b1-3*b1*b1*b1

c4:= 1+3*b1+b1*b1*b1+3*b1*b1;

MA1:= c1*e6+c2*e5+c3*e4+c4*e3;

Tutti questi codici sono simili, si potrebbe iniziare guardando il codice T3

 
nittany1:
Globale, metti questo prima di init()
datetime PreviousBar;[/CODE]

In the order placement and/or order close stuff, wrap it in this:

if(NewBar() == true)

{

if blah blah blah, gimme pips // not actual functions but you get the idea

if blah blah blah, close orders // um

}

Common function outside main loop:

[CODE]//--- returns true if current bar just formed

bool NewBar()

{

if(PreviousBar<Time[0])

{

PreviousBar = Time[0];

return(true);

}

else

{

return(false);

}

return(false);

}

Grazie nitty1 per l'aiuto. Lo proverò.

Grazie anche a waltini & devil2000. Dovrei essere in grado di capirlo ora.

 

Codice del conto per l'esecuzione su Demo liberamente

Ciao:

Qualcuno può dirmi quale codice potrebbe essere inserito per permettere ad un EA che ha un codice di sicurezza dell'account di girare liberamente anche su un account demo in modo che gli utenti possano testarlo prima di andare live?

E' possibile?

Grazie

 
fxgrm:
Ciao:

Qualcuno può dirmi quale codice potrebbe essere inserito per permettere ad un EA che ha un codice di sicurezza dell'account di funzionare liberamente anche su un account demo in modo che gli utenti possano testarlo prima di andare live?

E' possibile?

Grazie

Dal metaeditore:

bool IsDemo()

Restituisce TRUE se l'esperto gira su un conto demo, altrimenti restituisce FALSE.

 

Codifica "Condizione di tendenza" con StepMA

Condizione di acquisto:

StepMA (con modalità colore: 2) è "lungo"

Lostocastico incrocia 20 da sotto a sopra

Condizione di vendita:

StepMA (con modalità colore: 2) è "short

Lo stocastico incrocia 80 da sopra a sotto

double StochCurrent = iStochastic(NULL, 0, 21, 3, 8, MODE_SMA, 0, MODE_MAIN, Bar + 0);

double StochPrevious = iStochastic(NULL, 0, 21, 3, 8, MODE_SMA, 0, MODE_MAIN, Bar + 1);

double TrendLong = iCustom(NULL, 0, "stepma_v7ea", 1, 1.0, 0, 0, 0, 0.0, false, 2, 0, 1, Bar + 0);

double TrendShort = iCustom(NULL, 0, "stepma_v7ea", 1, 1.0, 0, 0, 0, 0.0, false, 2, 0, 2, Bar + 0);

Compra se:

TrendLong && StochCurrent > 20 && StochPrevious < 20

Vendi se:

TrendShort && StochCurrent 80

Qualcuno può aiutarmi con il codice della "Condizione di Trend" nell'esempio sopra, non funziona. Ho provato a chiamare il buffer 1 e il buffer 2 per la modalità long e short ma non capisco il codice di questo indicatore. Grazie in anticipo!

Motivazione: