[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 1124

 

Bon après-midi. Revenons à ma question. La transaction inverse ne fonctionne pas. J'ai parcouru le site mais je n'ai rien trouvé sur ce sujet. Pouvez-vous me dire ce que je fais de mal (j'apprends encore la langue). Elle doit être déclenchée sur une seule bougie.

extern double TP = 70 ; //bénéfice
extern double SL = 0 ; //perte
extern double Lot = 0.1 ;

double HighLevel ;
double LowLevel ;
int resBuy=0 ;
int resSell=0 ;


//+------------------------------------------------------------------+
//| fonction d' initialisation de l'expert |
//+------------------------------------------------------------------+
int init()
{
HighLevel=High[1] ;
LowLevel=Low[1] ;
return ;
}

//+------------------------------------------------------------------+
//| fonction expert |
//+------------------------------------------------------------------+

void start()
{

if(Bars<100 && IsTradeAllowed()==false) return ;


if(resBuy==0 && resSell==0 && CheckBreak()==-1)
{
resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red) ;
HighLevel=LowLevel ;
LowLevel=Close[1] ;
return ;
}

if(resBuy==0 && resSell==0 && CheckBreak()==1)
{
resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue) ;
LowLevel=HighLevel ;
HighLevel=Close[1] ;
return ;
}

if(resBuy!=0 && resSell==0 && Close[1]<LowLevel) //------------------------------------- intéressé par cette partie : fermeture et ouverture sur une barre
{
bool closeBuy=OrderClose(resBuy, Lot, Bid, 2, Blue) ;
// while(!IsTradeAllowed()) Sleep(100) ;
resSell=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,0,Bid -TP,"",MAGICMA,0,Red) ;
HighLevel=LowLevel ;
LowLevel=Close[1] ;
return ;
}

if(resSell!=0 && resBuy==0 && Close[1]>HighLevel) //------------------------------------- intéressé par cette partie : fermeture et ouverture sur une barre
{
bool closeSell=OrderClose(resSell, Lot, Ask, 0.0002, Red) ;
// while(!IsTradeAllowed()) Sleep(100) ;
resBuy=OrderSend(Symbol(),OP_BUY,Lot,Ask,2,0,Ask + TP,"",MAGICMA,0,Blue) ;
LowLevel=HighLevel ;
HighLevel=Close[1] ;
return ;
}

}

//----------------------------------------------------------------- Check Low&High break (Func)

double CheckBreak()
{
double candle=Open[1]-Close[1] ;

if(candle>0 && Low[1]<LowLevel) return(-1) ;
if(candle<0 && High[1]>HighLevel) return(1) ;
}


 
Bonjour à tous,

Il y a un problème avec les tableaux :

Supposons

int start (){ // Début de la fonction

int OrdSen_1=OrderSend(Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point) ; // Ordre d'achat
if(OrdSen_1==-1){ Alert("OrdSen_1 ",GetLastError());} // Vérification d'une erreur lors de la passation d'un ordre

double mas1[]={} ; // Tableau
}

La question est de savoir comment placer les valeurs "Symbol(), OP_BUY, 0.10, Ask,1, Ask-70*Point, Ask+70*Point" qui appartiennent à OrdSen_1 dans le tableau mas1[]={}, afin qu'elles puissent être utilisées ultérieurement, extraites du tableau ou assimilées à des variables pour leur utilisation ultérieure. Il peut y avoir d'autres ordres de ce type, ainsi que des tableaux, mais l'essentiel est de comprendre le principe.

TRES reconnaissant pour l'aide et les explications, de préférence en détail :)
 
Techno:

Outside sera supprimé parce que vous ne l'utilisez pas, c'est-à-dire que vous ne l'appelez pas de n'importe où, est-ce clair maintenant ?

Je l'ai eu, merci :)
 
artmedia70:

Que pensez-vous de cet échantillon ? :)))))

Avec le wifi, c'est bon.
 

Salutations. Comment l'éditeur peut-il garder la trace de tous les endroits du code où la même variable. fonction est utilisée ?

 
Galion:

Salutations. Comment l'éditeur peut-il garder la trace de tous les endroits du code où la même variable. fonction est utilisée ?


J'utilise Notepad++ pour cela. Il suffit de mettre une variable en surbrillance une fois pour qu'elle le soit tout au long de votre code.

 
Mais pour que Notepad++ mette en évidence la syntaxe, vous devez l'adapter au langage MQL4. Tapez Notepad++ dans la recherche de ce forum et vous trouverez un lien vers un éditeur déjà configuré - je l'ai posté ici plus d'une fois.
 
drknn:
Mais pour que Notepad++ mette en évidence la syntaxe, vous devez l'adapter au langage MQL4. Tapez Notepad++ dans la recherche de ce forum et vous trouverez un lien vers un éditeur déjà configuré - je l'ai posté ici plus d'une fois.

Merci. Je l'ai installé, il s'allume, c'est plus amusant))
 
Galion:

Merci. Je l'ai installé, il s'allume, c'est plus amusant))

Il existe une fonction très intéressante pour marquer les variables trouvées. Appuyez sur Ctrl+F, entrez le nom de la variable, cochez "Signet" et "Marqueur trouvé". Ensuite, appuyez sur le bouton "Rechercher tout". Pour les supprimer, appuyez sur le bouton "Supprimer tout".
 
drknn:

Il existe une fonction très intéressante pour marquer les variables trouvées. Appuyez sur Ctrl+F, entrez un nom de variable, cochez les cases "Signet" et "Marqueur trouvé". Ensuite, appuyez sur le bouton "Rechercher tout". Pour les supprimer, cliquez sur "Supprimer tout".

Et un double-clic mène à l'extrait de code)))) Juste ce dont j'ai besoin, merci)