[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 424

 
Legeo777:

Aidez-moi à comprendre ce qui ne va pas :

//+------------------------------------------------------------------+

//| AAAA.mq4 |

//| |

//| |

//+------------------------------------------------------------------+

#property copyright ""

#lien de propriété ""


extern string TimeStart = "00:00" ; //heure de début de la période de contrôle

extern string TimeEnd = "00:00" ; //heure de fin de la période de contrôle.


extern double LOT = 0.01 ; // lot

extern int Magic = 777 ; // magie



double marga,Lot,SL,TP ; // variables de marge, lot, stop loss et take profit saisies

int Total,Orders,tipOrders,TradeDey ; // type de variables, type d'ordre, jour de négociation.


//+---------------------------------------------------------------------------------------------------------------------------------------+

//| fonction de l'Expert Advisor |

//+---------------------------------------------------------------------------------------------------------------------------------------+

int start() // Fonction de démarrage d'initialisation

{

datetime Time_Start = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeStart, ":00")) ; // paramètres de départ //

datetime Time_End = StrToTime(StringConcatenate(Day(), ".",Month(), ".",Year(),",TimeEnd, ":00")) ; // Paramètres de fin///



Total=0 ; // S'il n'y a pas de commande

for(int i=1 ; i<=OrdersTotal() ; i++) // Boucle de commande

{

if (OrderSelect(i-1,SELECT_BY_POS)==false) // S'il n'y a pas d'ordres au marché

{

if //If : - supprimer
{

int BarStart = iBarShift(NULL,PERIOD_M1,Time_Start,false) ; // recherche de la barre au début de la période de contrôle sur m1

int BarEnd = iBarShift(NULL,PERIOD_M1,Time_End,false) ; //recherche de la fin de la période de contrôle à la barre m1

double Max_Price=iHigh(NULL,0,iHighest(NULL,PERIOD_M1,MODE_HIGH,BarStart-BarEnd,BarEnd)) ; //la valeur de prix la plus élevée au cours de la période.

double Min_Price=iLow (NULL,0,iLowest (NULL,PERIOD_M1,MODE_LOW,BarStart-BarEnd,BarEnd)) ; //la valeur de prix la plus basse au cours de la période

}

if (TimeCurrent()>Time_End && ObjectFind("bar0"+Time_End)==-1) // Paramètres d'affichage graphique

{

ObjectCreate("bar0"+Time_End, OBJ_RECTANGLE, 0, 0,0, 0,0) ;

ObjectSet("bar0"+Time_End, OBJPROP_STYLE, STYLE_SOLID) ;

ObjectSet ("bar0"+Time_End, OBJPROP_COLOR, Blue) ;

ObjectSet ("bar0"+Time_End, OBJPROP_BACK, true) ;

ObjectSet ("bar0"+Time_End, OBJPROP_TIME1,Time_Start) ;

ObjectSet ("bar0"+Time_End, OBJPROP_PRICE1,Max_Price) ;

ObjectSet ("bar0"+Time_End, OBJPROP_TIME2,Time_End) ;

ObjectSet ("bar0"+Time_End, OBJPROP_PRICE2,Min_Price) ;

}

if (Bid<Max_Price) OrderSend(Symbol(),OP_BUYSTOP,LOT,Ask,3,Min_Price, //conditions pour placer un ordre en attente BUY - les ordres en attente ne peuvent pas être placés par Ask ou Bid

NormalizeDouble(Ask + Max_Price - Min_Price,Digits), "UPDD",Magic,Blue) ;

si (Bid>Max_Price)

Comment("L'ordre en attente ne peut pas être placé sur BAY") ;

if (Bid>Min_Price) OrderSend(Symbol(),OP_SELLSTOP,LOT,Bid,3,Min_Price, //conditions pour placer un ordre de vente en attente - idem

NormalizeDouble(Ask + Max_Price-Min_Price,Digits), "UPDD",Magic,Blue) ;

si (Bid<Max_Price) - il doit y avoir une erreur ici

Comment("L'ordre en attente ne peut pas être placé sur SELL") ;

}

} - ajouter

retour ;

}

Je ne peux pas le compiler. En fait, il devrait placer deux ordres en attente en haut et en bas de la fourchette.

Après les corrections, il devrait compiler, mais il ne fonctionnera probablement pas - temps mal définis, prix non normalisés, pas de vérification de la proximité des stops par rapport aux prix ouverts.
 
Si vous êtes compétent, pourriez-vous nous dire comment fixer le temps d'existence de l'ordre en attente à 23.59, c'est-à-dire que si l'ordre est placé par un EA, il existera jusqu'à 23.59 de la journée en cours.
 
stater:
Si vous êtes compétent, pourriez-vous nous dire comment fixer le temps d'existence de l'ordre en attente à 23.59, c'est-à-dire que si l'ordre est placé par un EA, il existera jusqu'à 23.59 de la journée en cours.
datime exp=iTime(Symbol(),PERIOD_D1,0)+23*60*60+59*60;
 
Sepulca:


Merci beaucoup ! Pouvez-vous me dire combien d'EAs peuvent fonctionner dans un terminal, j'ai ouvert 5 graphiques EURUSD, j'ai lancé 5 EAs différents dessus, mais le journal ne montre que le premier qui fonctionne...bien que tous mes visages soient souriants...

 

Quelle est la façon la plus intelligente de faire un MM, à la condition de 0,1 lot pour chaque balance de 1000.

Lequel est le plus raisonnable à utiliser, AccountBalance ou AccountEquity ?

 

Bon après-midi,

Y a-t-il une commande qui pourrait être ajoutée au script (dont le code est "OrderSend(Symbol(),OP_BUYSTOP...") pour que le script s'exécute sur tous les graphiques ouverts?

 
sss2019:

Quelle est la façon la plus intelligente de faire un MM, à la condition de 0,1 lot pour chaque balance de 1000.

Lequel est le plus raisonnable à utiliser, AccountBalance ou AccountEquity ?


Cela ne fait aucune différence. Si vous ouvrez un seul ordre, ils sont égaux au moment de l'ouverture, mais si vous en avez beaucoup, une seule formule ne suffit pas.
 
stater:

Merci beaucoup ! Pouvez-vous me dire combien d'EAs peuvent fonctionner dans un terminal, j'ai ouvert 5 graphiques EURUSD, j'ai lancé 5 EAs différents dessus, mais le journal ne montre que le premier qui fonctionne...bien que tous mes visages soient souriants...



sur différentes paires de devises fonctionnera, même s'il s'agit du même conseiller expert. Dans un tableau, un seul fonctionnera. Mais sur différents graphiques de la même paire de devises, je ne sais même pas......
 
Roger:

Cela ne fait aucune différence, si vous ouvrez un seul ordre, ils sont égaux au moment de l'ouverture, et si vous en avez plusieurs, alors une formule n'est pas suffisante.


Je pensais juste que si j'ai déjà plusieurs ordres ouverts et qu'ils sont en drawdown, alors le lot devrait être calculé avec l'équité, sinon si vous le calculez avec le solde, alors le lot peut être trop grand et il n'y a pas assez d'argent pour ouvrir.

Veuillez me montrer un exemple de calcul de ce type pour un dépôt de 1000 lots de 0,1 lot.

 
Roger Merci beaucoup !!!!!