Veuillez m'aider à trouver un EA (script) qui soit met une grille d'ordres virtuels en attente avec des paramètres spécifiés, soit ouvre des ordres (un par un) dans une direction spécifiée avec une prise spécifiée.
SELL_STOP - les ordres sont calculés, mais SELL ne le veut pas. Selon l'algorithme, s'il n'y en a aucun, l'ordre SELL_STOP est placé, et s'il y en a au moins un, l'ordre n'est pas placé.
SELL_STOP - les ordres sont comptés, mais SELL ne veut pas. Selon l'algorithme, s'il n'y en a pas, l'ordre SELL_STOP est placé, et si au moins l'un d'entre eux est présent, aucun ordre n'est placé.
//+------------------------------------------------------------------+//| Script 1.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2020, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//---#include <Trade\PositionInfo.mqh>
#include <Trade\OrderInfo.mqh>
//---CPositionInfo m_position; // object of CPositionInfo classCOrderInfo m_order; // object of COrderInfo class//---//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
int count_buys = 0.0;
int count_sells = 0.0;
int count_buy_limits = 0.0;
int count_sell_limits = 0.0;
int count_buy_stops = 0.0;
int count_sell_stops = 0.0;
//---for(int i=PositionsTotal()-1; i>=0; i--)
if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
{
if(m_position.PositionType()==POSITION_TYPE_BUY)
count_buys++;
elseif(m_position.PositionType()==POSITION_TYPE_SELL)
count_sells++;
}
//---for(int i=OrdersTotal()-1; i>=0; i--) // returns the number of current ordersif(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its properties
{
if(m_order.OrderType()==ORDER_TYPE_BUY_LIMIT)
count_buy_limits++;
elseif(m_order.OrderType()==ORDER_TYPE_SELL_LIMIT)
count_sell_limits++;
elseif(m_order.OrderType()==ORDER_TYPE_BUY_STOP)
count_buy_stops++;
elseif(m_order.OrderType()==ORDER_TYPE_SELL_STOP)
count_sell_stops++;
}
//--- you code
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+
Je ne comprends pas à quoi sert le paramètre begin dans la deuxième variante de la fonction onCalculate. Chaque fois que la fonction onCalculate est appelée, elle est égale à 0. Je sortais la valeur de begin via la fonction print. Le livre de référence indique que le début est "le point de départ des données significatives". Ça ne me dit rien du tout.
MisterRight: Je ne comprends pas à quoi sert le paramètre begin dans la deuxième variante de la fonction onCalculate. Chaque fois que la fonction onCalculate est appelée, elle est égale à 0. J'ai fait la sortie de la valeur de départ via la fonction print. Le livre de référence indique que le début est "le point de départ des données significatives". Ça ne me dit rien du tout.
Consultez les codes de l'indicateur ouvert de l'exemple.
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.
Comment comprendre le type de compte de manière programmatique ? Couverture ou compensation ?
Ou comme ceci
m_label_info[3].Description(m_account.MarginModeDescription());\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Veuillez me dire où se trouve l'erreur :
SELL_STOP - les ordres sont calculés, mais SELL ne le veut pas. Selon l'algorithme, s'il n'y en a aucun, l'ordre SELL_STOP est placé, et s'il y en a au moins un, l'ordre n'est pas placé.Veuillez me dire où se trouve l'erreur :
SELL_STOP - les ordres sont comptés, mais SELL ne veut pas. Selon l'algorithme, s'il n'y en a pas, l'ordre SELL_STOP est placé, et si au moins l'un d'entre eux est présent, aucun ordre n'est placé.Ne confondez pas l'ORDRE LOCAL avec la POSITION.
Ne confondez pas l'ORDRE à distance avec la POSITION.
Chaque fois que la fonction onCalculate est appelée, elle est égale à 0.
Je sortais la valeur de begin via la fonction print.
Le livre de référence indique que le début est "le point de départ des données significatives". Ça ne me dit rien du tout.
Je ne comprends pas à quoi sert le paramètre begin dans la deuxième variante de la fonction onCalculate.
Chaque fois que la fonction onCalculate est appelée, elle est égale à 0.
J'ai fait la sortie de la valeur de départ via la fonction print.
Le livre de référence indique que le début est "le point de départ des données significatives". Ça ne me dit rien du tout.
Consultez les codes de l'indicateur ouvert de l'exemple.
Regardez les codes de l'indicateur ouvert de l'exemple.
J'ai regardé. Toujours commencer = 0.
Ici, j'ai tiré un morceau de code de l'indicateur AMA
si(begin!=0)
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,ExtPeriodAMA+begin) ;
Et que devrait me dire ce code si la condition begin!=0 n'est jamais vraie ?
Cela donne des bêtises à la fin, beaucoup plus que des ordres fermés.