il devrait y avoir un numéro de ligne et une position dans la ligne de code avec l'erreur.
C'est un moyen facile de corriger toutes les erreurs, en connaissant l'emplacement exact dans le code.
J'ai pris l'Expert Advisor proposépar Alekseu Fedotov et j'ai essayé de le modifier pour l'adapter à mes besoins.
Mes besoins sont les suivants : Au croisement des baguettes, on ouvre une position, et on la ferme au croisement opposé. Si possible, nous transférons la position vers le seuil de rentabilité.
Mais en fin de compte, rien n'est ouvert. Je me creuse les méninges. Quel peut être le problème ?
J'ai pris l'EA proposépar Alekseu Fedotov et j'ai essayé de le modifier pour l'adapter à mes besoins.
Mes besoins sont les suivants : S'ils sont franchis, nous ouvrons une position. S'ils sont à nouveau franchis, nous la fermons. Si possible, nous transférons la position vers le seuil de rentabilité.
Mais en fin de compte, rien n'est ouvert. Je me creuse les méninges. Quel peut être le problème ?
Je ne sais pas quel est le problème, mais j'essaie de vous aider.
Renat Akhtyamov: Montrez la ligne du code avec l'erreur de CMM, pour la dernière fois je vous offre mon aide.
Il y a eu une erreur de ma part. J'ai fait une erreur dans la logique du programme. Et c'était plus facile pour moi de le refaire. Il n'y a pas d'erreur dans le code de CMM.
voidOnTick() { for (int i=0; i<OrdersTotal(); i++) if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0); double SL=0,TP=0;
if (STO > buy_level)
{ if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits); if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError()); PlaySound("timeout.wav"); Print("Ордер успешно размещен"); } }
voidOnTick() { for (int i=0; i<OrdersTotal(); i++) if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0); double SL=0,TP=0;
if (STO > buy_level)
{ if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits); if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError()); PlaySound("timeout.wav"); Print("Ордер успешно размещен"); } }
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
perte éventuelle de données due à la conversion de type
Essayez-le.
Montrez-moi la ligne du code sur laquelle le compilateur pointe
Il y a beaucoup de lignes comme ça, c'est pourquoi j'ai demandé un module adapté pour les nouveaux terminaux. Mais merci pour votre volonté d'aider)
Il y a beaucoup de lignes comme ça, c'est pourquoi j'ai demandé un module adapté pour les nouveaux terminaux. Mais merci pour votre volonté d'aider)
Sur cette ligne :
" perte éventuelle de données due à la conversion de type"
doit être le numéro de ligne et la position dans la ligne de code avec l'erreur.
C'est aussi simple que cela, vous pouvez corriger toutes les erreurs, en connaissant l'emplacement exact dans le code.
droite dans cette ligne :
" perte éventuelle de données due à la conversion de type"
il devrait y avoir un numéro de ligne et une position dans la ligne de code avec l'erreur.
C'est un moyen facile de corriger toutes les erreurs, en connaissant l'emplacement exact dans le code.
J'ai pris l'Expert Advisor proposépar Alekseu Fedotov et j'ai essayé de le modifier pour l'adapter à mes besoins.
Mes besoins sont les suivants : Au croisement des baguettes, on ouvre une position, et on la ferme au croisement opposé. Si possible, nous transférons la position vers le seuil de rentabilité.
Mais en fin de compte, rien n'est ouvert. Je me creuse les méninges. Quel peut être le problème ?
J'ai pris l'EA proposépar Alekseu Fedotov et j'ai essayé de le modifier pour l'adapter à mes besoins.
Mes besoins sont les suivants : S'ils sont franchis, nous ouvrons une position. S'ils sont à nouveau franchis, nous la fermons. Si possible, nous transférons la position vers le seuil de rentabilité.
Mais en fin de compte, rien n'est ouvert. Je me creuse les méninges. Quel peut être le problème ?
Montrez la ligne du code avec l'erreur de CMM, pour la dernière fois je vous offre mon aide.
Montrez un extrait de code sur la façon dont vous lisez le signal de l'indicateur dans votre EA.
takeprofit = 400,
slippage = 10,
Magic = 777;
extern double Lot = 0.5,
buy_level = 15;
void OnTick()
{
for (int i=0; i<OrdersTotal(); i++)
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
double SL=0,TP=0;
if (STO > buy_level)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
PlaySound("timeout.wav");
Print("Ордер успешно размещен");
}
}
takeprofit = 400,
slippage = 10,
Magic = 777;
extern double Lot = 0.5,
buy_level = 15;
void OnTick()
{
for (int i=0; i<OrdersTotal(); i++)
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
double SL=0,TP=0;
if (STO > buy_level)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
PlaySound("timeout.wav");
Print("Ордер успешно размещен");
}
}
Juste ici :
iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0) ;
changer la période (timeframe) en 1,5,15,30,60,240,1440,10080,43200 //M1.M5.M30 ... etc.
ou entrez Period() au lieu de 15, alors lorsque vous changez de TF manuellement, le TF actuel sera automatiquement défini