[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 407
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
LA BASE DU FLETCHING... :-)
et aussi une TENDANCE DE BASE ;))
si l'eur baisse et le dol baisse, plat
:-)
les écarts de swap ont-ils été pris en compte dans la réflexion ?
Sur le fait qu'après le for...
Ouais.... Réponse "exhaustive". Chaque événement doit avoir une raison. Les professionnels, confrontés à certains dysfonctionnements, savent à quoi faire attention. J'ai parcouru l'algorithme plusieurs fois, mais je n'arrive pas à trouver la cause C'est pourquoi je me tourne vers les pros pour obtenir des conseils - quelle pourrait être la raison ?
J'essaie d'ouvrir un ordre en attente comme ceci :
//+---------Функция расчета лота---------------------------------------+
double GetLot(int Risk)
{
double Free=AccountFreeMargin() ;
double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED) ;
double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT) ;
double Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT) ;
double Step=MarketInfo(Symbol(),MODE_LOTSTEP) ;
double Lot=MathFloor(Free*Risk/100/One_Lot/Step)*Step ;
si(Lot<Min_Lot)Lot=Min_Lot ;
if(Lot>Max_Lot)Lot=Max_Lot ;
si(Lot*One_Lot>Free)retour(0.0) ;
retour(Lot) ;
}
//+----------Функция открытия ордера-----------------------------------+
int NewOrder(int Cmd,double Lot)
{
double TP=0;//takeprofit
double SL=0;// stop loss
double PR=0;// prix
while(!IsTradeAllowed())Sleep(100) ;
if(TakeProfit<MarketInfo(Symbol(),MODE_STOPLEVEL))
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL) ;
if(StopLoss<MarketInfo(Symbol(),MODE_STOPLEVEL))
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL) ;
si(Cmd==OP_BUYSTOP)
{
PR=NormaliserDouble(Demande,Chiffres) ;
if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits) ;
si(StopLoss>0)SL=NormalizeDouble(Bid-StopLoss*Point,Digits) ;
}
if(Cmd==OP_SELLSTOP)
{
PR=NormalizeDouble(Bid,Digits) ;
si(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits) ;
si(StopLoss>0)SL=NormalizeDouble(Ask+StopLoss*Point,Digits) ;
}
tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE) ;
if(tic<0)Print("Erreur d'ouverture d'ordre :",GetLastError()) ; Print("Cmd-",Cmd, "Lot=",Lot, "PR=",PR, "SL=",SL, "TP=",TP) ;
retour(tic) ;
}
Quand je le vérifie, je reçois un message :
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15 : montant de lots invalide pour la fonction OrderSend
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15 : Erreur OrderSend 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15 : Ordre erroné ouvert:405
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15 : Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216
De toute évidence, il s'agit de quelque chose avec le calcul des lots, mais je ne comprends pas quoi)))) Veuillez me conseiller
Yep.... Réponse "exhaustive". Chaque événement doit avoir une raison. Les professionnels, lorsqu'ils rencontrent un dysfonctionnement, savent ce qu'il faut rechercher. J'ai parcouru l'algorithme plusieurs fois, mais je n'ai pas trouvé la raison. C'est pourquoi je demande l'avis des pros - quelle peut être la raison ?
Eh bien, où est l'indicateur ? ! (Je devine par le marc de café tel. https://www.mql5.comhttps://www.mql5.com/ru/)
Si tu énumères tout, il n'y aura plus de lettres.
continue break return voir si et quand il y a une interruption pour et quand elle se produit. fonctionne avec l'ouverture de la barre....
"rencontrant certains problèmes, savoir à quoi faire attention" ils ne font pas attention mais commencent à déboguer, commencez à déboguer votre indicateur aussi, par exemple via print (en plus avec celui de quelqu'un d'autre et donc 15 pages de long, plus de 50 fonctions appelées...).
Bonjour.
J'ai créé un tableau :
Cependant, pour une raison quelconque, sa première valeur passe à zéro (-10,09 devient 0). J'ai trouvé un moyen de me sortir de cette situation en faisant ça :
Pouvez-vous me dire de quoi il s'agit ? J'ai très envie de comprendre.
Merci d'avance.
Bonjour.
J'ai créé un tableau :
Cependant, pour une raison quelconque, sa première valeur passe à zéro (-10,09 devient 0). J'ai trouvé un moyen de me sortir de cette situation en faisant ça :
Pouvez-vous me dire de quoi il s'agit ? J'ai très envie de comprendre.
Merci d'avance.
Je n'ai pas mis à zéro avec l'index = 0
2011.12.06 20:00:47 MA_TF AUDUSD,M30 : Alerte : -10.09
Voici la partie du code qui pose problème :
Voici le problème décrit ci-dessus : la ligne dérivée de la valeur -10.09 n'est pas tracée (elle prend la valeur de MinAsia).
Voici la partie du code qui pose problème :
tuz
J'essaie d'ouvrir un ordre en attente comme ceci :
//+---------Функция расчета лота---------------------------------------+
Quand je le vérifie, je reçois un message :
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15 : montant de lots invalide pour la fonction OrderSend
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15 : Erreur OrderSend 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15 : Ordre erroné ouvert:405
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15 : Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216
De toute évidence, il s'agit de quelque chose avec le calcul des lots, mais je ne comprends pas quoi))). Veuillez me conseiller