Comment coder ? - page 70

 

Besoin d'aide

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

 
SIDDESH:
Bonjour,

Pouvez-vous s'il vous plaît donner le code pour la barre précédente.

Cela peut être utilisé dans l'EA pour limiter le placement des ordres lorsque la barre précédente est supérieure à une certaine hauteur.

Merci,

SIDDESH

Siddesh et tous ceux qui peuvent vous aider :

Le code pour la barre précédente est ci-dessous :

//pour acheter

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

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

si (close[1]indicateurnow) OpenBUY() ;

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

mais avec ce satatement, l'expert ouvre des positions non seulement quand le prix traverse l'indicateur, il ouvre des positions au dessus de l'indicateur aussi. Je veux que l'expert ouvre une position UNIQUEMENT quand le prix traverse l'indicateur, donc j'ai essayé cela :

//pour acheter

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

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

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

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

Mais cette instruction ne fonctionne pas.

Savez-vous ce qui se passe ? Parce que je pense qu'il n'y a pas d'erreurs dans l'instruction.

La question est de savoir pourquoi l'ouverture ne se fait pas au point exact du croisement lorsque close[0]==Indicatornow? Si la fonction était avec ==, nous empêcherions l'ouverture des ordres au-dessus du point de croisement entre l'indicateur et la clôture de la barre actuelle, mais elle ne fonctionne pas avec ce type de relation entre les variables.

 

Les personnes qui peuvent aider :

Le code pour la barre précédente est ci-dessous :

//pour acheter

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

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

si (close[1]indicateurnow) OpenBUY() ;

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

mais avec ce satatement, l'expert ouvre des positions non seulement quand le prix traverse l'indicateur, il ouvre des positions au dessus de l'indicateur aussi. Je veux que l'expert ouvre une position UNIQUEMENT quand le prix traverse l'indicateur, donc j'ai essayé cela :

//pour acheter

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

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

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

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

Mais cette instruction ne fonctionne pas.

Savez-vous ce qui se passe ? Parce que je pense qu'il n'y a pas d'erreurs dans l'instruction.

La question est de savoir pourquoi l'ouverture ne se fait pas au point exact de la croix lorsque close[0]==Indicatornow? Si la fonction était avec ==, nous empêcherions l'ouverture d'ordres au-dessus du point de croisement entre l'indicateur et la clôture de la barre actuelle, mais cela ne fonctionne pas avec ce type de relation entre les variables.

Avez-vous expérimenté le même problème ? Quelqu'un sait-il comment le résoudre ?

Merci encore.

 
la totona:
Les personnes qui peuvent vous aider :

Le code de la barre précédente est le suivant :

//à l'achat

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

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

si (close[1]indicateurnow) OpenBUY() ;

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

mais avec ce satatement, l'expert ouvre des positions non seulement quand le prix traverse l'indicateur, il ouvre des positions au dessus de l'indicateur aussi. Je veux que l'expert ouvre une position UNIQUEMENT quand le prix traverse l'indicateur, donc j'ai essayé cela :

//pour acheter

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

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

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

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

Mais cette instruction ne fonctionne pas.

Savez-vous ce qui se passe ? Parce que je pense qu'il n'y a pas d'erreurs dans l'instruction.

La question est de savoir pourquoi l'ouverture ne se fait pas au point exact du croisement lorsque close[0]==Indicatornow? Si la fonction était avec ==, nous empêcherions l'ouverture d'ordres au-dessus du point de croisement entre l'indicateur et la clôture de la barre actuelle, mais cela ne fonctionne pas avec ce type de relation entre les variables.

Avez-vous expérimenté le même problème ? Quelqu'un sait-il comment le résoudre ?

Merci, encore une fois.

Parce que vous recherchez une correspondance exacte entre une valeur à virgule flottante à 8 chiffres et le prix - ils ne seront presque jamais égaux avec des résolutions comme celle-ci. Il suffit de vérifier si la valeur est supérieure ou inférieure à la condition.

 

logiciel de swicthing

Bonjour les gars, j'aurais besoin de transformer cet indicateur ou le système de trading relatif en langage mql car cela fonctionne sur metatrader 4. Est-ce que je change de courtier et de logiciel, est-ce que quelqu'un peut' m'aider ?

{Calcul de la moyenne mobile à régression élargie}

{DÉBUT}

{"-HShift" - BARRES EN AVANT}

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,PériodeMA,TypeMA) ;

e6:= Mov(e5,PériodeMA,TypeMA) ;

c1:= -b*b*b ;

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

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

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

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

{Calcul de la durée de vie de MV

pour éliminer la distorsion des valeurs initiales}

{Moyenne mobile T3}

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

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

e3:= Mov(e2,PeriodMA1,TypeMA1) ;

e4:= Mov(e3,PériodeMA1,TypeMA1) ;

e5:= Mov(e4,PériodeMA1,TypeMA1) ;

e6:= Mov(e5,PériodeMA1,TypeMA1) ;

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*b1+3*b1*b1 ;

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

{Tendance à la hausse et à la baisse}

Tendance à la hausse:=Mv>=MA1 ;

Tendance à la baisse:=MA1>=Mv ;

{Signal Long et Short}

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

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

{OpenBuy et CloseBuy}

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

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

{OpenSell et CloseSell}

OpenSell:= croisement(MA1,Mv) et MA1>=Mv ;

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

 
bobo10:
Bonjour les gars, j'aurais besoin de transformer cet indicateur ou le système de trading relatif en langage mql car il fonctionne sur metatrader 4. Est-ce que je change de courtier et de logiciel, est-ce que quelqu'un peut m'aider ?

{Moyenne mobile T3}

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

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

e3:= Mov(e2,PeriodMA1,TypeMA1) ;

e4:= Mov(e3,PériodeMA1,TypeMA1) ;

e5:= Mov(e4,PériodeMA1,TypeMA1) ;

e6:= Mov(e5,PériodeMA1,TypeMA1) ;

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*b1+3*b1*b1 ;

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

Tous ces codes sont similaires, vous pourriez commencer par regarder le code T3

 
nittany1:
Global, mettez ceci avant 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);

}

Merci nitty1 pour l'aide. Je vais l'essayer.

Merci également à waltini et devil2000. Je devrais être capable de le comprendre maintenant.

 

Code de compte pour fonctionner sur Demo librement

Bonjour :

Quelqu'un peut-il me dire quel code pourrait être inséré pour permettre à un EA qui contient un code de sécurité de compte de fonctionner librement sur un compte de démonstration afin que les utilisateurs puissent le tester avant de le mettre en ligne ?

Est-ce même possible ?

Merci

 
fxgrm:
Bonjour :

Quelqu'un peut-il me dire quel code pourrait être inséré pour permettre à un EA qui contient un code de sécurité de compte de fonctionner librement sur un compte de démonstration afin que les utilisateurs puissent le tester avant de le mettre en ligne ?

Est-ce même possible ?

Merci

Depuis le métaéditeur :

bool IsDemo()

Renvoie VRAI si l'expert fonctionne sur un compte de démonstration, sinon renvoie FAUX.

 

Codage de la "condition de tendance" avec StepMA

Condition d'achat :

StepMA (avec Mode Couleur : 2) est "long".

Lestochastique traverse 20 de bas en haut

Condition de vente :

StepMA (avec Mode Couleur : 2) est "court".

Le stochastique traverse 80 de haut en bas

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) ;

Acheter si :

TrendLong && StochCurrent > 20 && StochPrevious < 20

Vendez si :

TrendShort && StochCurrent 80

Quelqu'un peut-il m'aider avec le code de la "Trend Condition" dans l'exemple ci-dessus, cela ne fonctionne pas. J'ai essayé d'appeler le tampon 1 et le tampon 2 pour le mode long et court mais je ne comprends pas le code de cet indicateur. Merci d'avance !

Raison: