Bonsoir ! Je suis perplexe. J'ai deux ordres ouverts dans le testeur, l'un avec takeprofit, l'autre sans.
Ils prennent tous deux des profits en même temps. ! !!!
Je suis passé devant cet endroit huit fois avec le testeur. Je ne peux pas le comprendre !
On dirait un double clone ! Essayez-le sur Demo ! Vous nous en parlerez plus tard !
Donc regardez, où le SL s'est déclenché, la perte, et où le TP, le profit. C'est vrai !
Vérifier ce que dit le journal ? Donc, pas à pas, tracez toutes les actions !
Seulement dans les doubles de passage du testeur ! Sur la démo, en plus, sur le Real sera 1, et le second ne passera pas, il y aura beaucoup d'erreurs !
hoz: La question est la suivante. Si je veux placer un ordre à cours limité qui se déclenchera exactement à l'ouverture de la barre du jour, c'est-à-dire la barre sur TF D1. Comment dois-je le mettre en œuvre ? Je ne comprends pas vraiment la logique. Après tout, je n'ai pas besoin de mettre un simple Limiteur, mais un Limiteur qui fonctionnera exactement à un certain moment, c'est-à-dire à l'ouverture d'une nouvelle barre du jour.
Tout d'abord, décidez de la terminologie - " Limite qui se déclenchera exactement à un certain moment " - que signifie " Limit trigger " ? Et plus vous expliquerez ce processus magique, plus il sera facile de le mettre en œuvre dans la vie réelle. Au cas où, lisez ce qui concerne les ordres en attente.
Bonsoir ! Je suis perplexe. J'ai deux ordres ouverts dans le testeur, l'un avec takeprofit, l'autre sans.
Ils prennent tous deux des profits en même temps. ! !!!
Je suis passé devant cet endroit huit fois avec le testeur. Je ne peux pas le comprendre !
Peut-être pouvez-vous partager un secret - "Pourquoi créer un clone d'une commande ouverte ? ?? Ne pouvez-vous pas ouvrir UN SEUL ordre avec un lot plus important ??? ;)
C'est une stratégie. Je vais peut-être faire une capture d'écran maintenant. Oh, mon grand frère est là. Je ne peux pas arriver à temps. C'est une situation bizarre, cependant.
Dimka-novitsek: Il s'agit d'une stratégie. Je vais peut-être faire une capture d'écran maintenant. Oh, mon grand frère est là. Je ne peux pas arriver à temps. C'est une situation bizarre.
Lorsque Diman, tu pourras utiliser une CAMPAGNE PERSONNELLE).
Avez-vous gagné de l'argent en un an dans le monde réel ? C'est comme les montants START qui vous sont alloués, n'est-ce pas ?)
TarasBY: Tout d'abord, définissez la terminologie - " la limite qui sera déclenchée exactement à un certain moment " - que signifie " la limite sera déclenchée " ? Et plus vous donnerez de détails sur ce processus magique, plus il sera facile de le mettre en œuvre dans la vie réelle.
Oui, je me suis mal exprimé. Je veux dire, en gros. Si c'est clair ici, le pendule n'est mis que sur le prix.
Voici le code :
//+------------------------------------------------------------------+//| 2 Days.mq4 |//| hoz |//| |//+------------------------------------------------------------------+#property copyright "hoz"#property link ""externstring A1 = "Объем сделки. Если i_lots = 0, то считается в процентах";
externdouble i_lots = 0.1;
externstring A2 = "Управление рисками";
externdouble i_sl = 15,
i_tp = 10;
externint slippage,
price_b,
price_a;
externstring Z1 = "=== Прочие настройки ===";
externstring i_openOrderSound = "ok.wav";
externint i_magicNumber = 400021;
double firstBarClosed,
secondBarClosed;
// Идентификаторы типов сигналов#define SIGNAL_BUY 1// Сигнал на покупку#define SIGNAL_SELL -1// Сигнал на продажу#define SIGNAL_NO 0// Нет сигнала#include <stderror.mqh>int init()
{
return(0);
}
//+------------------------------------------------------------------+int deinit()
{
return(0);
}
//+------------------------------------------------------------------+//+-------------------------------------------------------------------------------------+//| Получение рыночных данных |//+-------------------------------------------------------------------------------------+//FindOrders()//+-------------------------------------------------------------------------------------+//| Получение рыночных данных |//+-------------------------------------------------------------------------------------+void GetMarketInfo()
{
price_b = MarketInfo(Symbol(),MODE_BID);
price_a = MarketInfo(Symbol(),MODE_ASK);
}
//+-------------------------------------------------------------------------------------+//| Открытие позиций |//+-------------------------------------------------------------------------------------+bool Trade(int signal, double& priceForBuy, double& priceForSell)
{
// FindOrders();
priceForBuy = NormalizeDouble(priceForBuy,Digits);
priceForSell = NormalizeDouble(priceForSell,Digits);
if(!IsTesting())
GetMarketInfo();
if (signal == SIGNAL_BUY)
if (!OrderSend(Symbol(),OP_BUYLIMIT, i_lots,priceForBuy,slippage,i_sl,i_tp,"",i_magicNumber,3))
return(false);
if (signal == SIGNAL_SELL)
if (!OrderSend(Symbol(),OP_SELLLIMIT,i_lots,priceForSell,slippage,i_sl,i_tp,"",i_magicNumber,3))
return(false);
return(true);
}
//+-------------------------------------------------------------------------------------+//| Получение цены входа в покупку или в продажу |//+-------------------------------------------------------------------------------------+double GetPriceToInput()
{
firstBarClosed = iClose(Symbol(),1440,2);
secondBarClosed = iClose(Symbol(),1440,1);
{
double deltaForSell = (firstBarClosed - secondBarClosed)/2;
double priceForSell = secondBarClosed - deltaForSell;
return(priceForSell);
}
{
double deltaForBuy = (secondBarClosed - firstBarClosed)/2;
double priceForBuy = secondBarClosed + deltaForBuy;
return(priceForBuy);
}
}
//+-------------------------------------------------------------------------------------+//| Генерация сигнала закрытия, покупки или продажи |//+-------------------------------------------------------------------------------------+int GetSignal()
{
if(firstBarClosed > secondBarClosed)
return(SIGNAL_BUY);
if(firstBarClosed < secondBarClosed)
return(SIGNAL_NO);
}
//+-------------------------------------------------------------------------------------+//| Функция Start |//+-------------------------------------------------------------------------------------+int start()
{
int signal = GetSignal();
if (signal != SIGNAL_NO)
if(!Trade(signal, priceForBuy, priceForSell))
return(0);
return(0);
}
La question, en fait, n'est pas très compliquée. J'ai passé desparamètres formelspriceForBuy et priceForSell dans la fonction Trade(int signal, double& priceForBuy, double& priceForSell). Les paramètres sont passés par les liens. Ce n'est pas comme ça que ça se passe ? Les fonctions sont locales et non globales.
Une erreur s'est produite pendant la compilation :
'priceForBuy' - variable not defined E:\Insall'd soft's\Forex\Admiral Markets\experts\2 Days.mq4 (117, 25)
'priceForSell' - variable not defined E:\Insall'd soft's\Forex\Admiral Markets\experts\2 Days.mq4 (117, 38)
D'où vient l'erreur ? J'ai déjà défini ces paramètres dans la fonctionGetPriceToInput().
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.
Bonsoir ! Je suis perplexe. J'ai deux ordres ouverts dans le testeur, l'un avec takeprofit, l'autre sans.
Ils prennent tous deux des profits en même temps. ! !!!
Je suis passé devant cet endroit huit fois avec le testeur. Je ne peux pas le comprendre !
On dirait un double clone ! Essayez-le sur Demo ! Vous nous en parlerez plus tard !
Donc regardez, où le SL s'est déclenché, la perte, et où le TP, le profit. C'est vrai !
Vérifier ce que dit le journal ? Donc, pas à pas, tracez toutes les actions !
Seulement dans les doubles de passage du testeur ! Sur la démo, en plus, sur le Real sera 1, et le second ne passera pas, il y aura beaucoup d'erreurs !
La question est la suivante. Si je veux placer un ordre à cours limité qui se déclenchera exactement à l'ouverture de la barre du jour, c'est-à-dire la barre sur TF D1. Comment dois-je le mettre en œuvre ? Je ne comprends pas vraiment la logique. Après tout, je n'ai pas besoin de mettre un simple Limiteur, mais un Limiteur qui fonctionnera exactement à un certain moment, c'est-à-dire à l'ouverture d'une nouvelle barre du jour.
Bonsoir ! Je suis perplexe. J'ai deux ordres ouverts dans le testeur, l'un avec takeprofit, l'autre sans.
Ils prennent tous deux des profits en même temps. ! !!!
Je suis passé devant cet endroit huit fois avec le testeur. Je ne peux pas le comprendre !
Il s'agit d'une stratégie. Je vais peut-être faire une capture d'écran maintenant. Oh, mon grand frère est là. Je ne peux pas arriver à temps. C'est une situation bizarre.
Lorsque Diman, tu pourras utiliser une CAMPAGNE PERSONNELLE).
Avez-vous gagné de l'argent en un an dans le monde réel ? C'est comme les montants START qui vous sont alloués, n'est-ce pas ?)
Tout d'abord, définissez la terminologie - " la limite qui sera déclenchée exactement à un certain moment " - que signifie " la limite sera déclenchée " ? Et plus vous donnerez de détails sur ce processus magique, plus il sera facile de le mettre en œuvre dans la vie réelle.
Oui, je me suis mal exprimé. Je veux dire, en gros. Si c'est clair ici, le pendule n'est mis que sur le prix.
Voici le code :
La question, en fait, n'est pas très compliquée. J'ai passé desparamètres formels priceForBuy et priceForSell dans la fonction Trade(int signal, double& priceForBuy, double& priceForSell). Les paramètres sont passés par les liens. Ce n'est pas comme ça que ça se passe ? Les fonctions sont locales et non globales.
Une erreur s'est produite pendant la compilation :
D'où vient l'erreur ? J'ai déjà défini ces paramètres dans la fonctionGetPriceToInput().
et à quoi sert le double bretzel & after (je ne sais vraiment pas)?
C'est une obsession de vouloir passer des paramètres par référence. :-)
C'est une obsession de vouloir passer des paramètres par référence. :-)
Comment faire autrement ? La même chose pour calculer 100 fois ?