Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 72

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
Si vous le comparez à l'équilibre, c'est comme ça :
Merci.
OK, alors si je comprends bien, vous obtenez trois fonctions personnalisées différentes avec le retour de la bonne (si vous cherchez trois paramètres différents)
ArraySort
puis
Recherche dans les tableaux par le bon numéro
et ensuite comment y faire face ?
Exactement la transition d'un tableau à un élément de structureVous ne comprenez pas.
Vous devez créer une seule fonction qui remplira et triera le tableau déclaré globalement. Le tableau devra être transmis à la fonction par référence.
Et vous avez besoin de fonctions supplémentaires qui extrairont de ce tableau les données dont vous avez besoin.
Vous ne comprenez pas.
Vous devez créer une seule fonction qui remplit et trie le tableau déclaré globalement. Le tableau devra être transmis à la fonction par référence.
Et vous avez besoin de fonctions supplémentaires qui prendront les données dont vous avez besoin dans ce tableau.
ok, pouvez-vous nous montrer comment extraire quelque chose d'un tableau de structures ? disons rempli et trié.
comment transférer par référence et par écrit.
Veuillez m'indiquer à quoi devrait ressembler la condition. Si un stop loss est déclenché, le lot est alors multiplié par 2, et si l'ordre suivant déclenche un take profit, le lot revient au lot initial, qui était avant le stop loss.
Je le comprends comme ça, mais je ne sais pas comment continuer...
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
{
if (OrderMagicNumber()==magic)
{
if (OrderStopLoss()==OrderClosePrice())
{
lot=lot*4;
}
}
}
}
Une autre question, qu'est-ce que j'ai écrit de faux dans le bloc de suppression des ordres ? Il ne supprime pas toujours les ordres, dans le journal, il est écrit
market order #1 cannot be deleted
{
for(int n=OrdersTotal()-1;n>=0;n--)
{
if(OrderSelect(n,SELECT_BY_POS))
{
if(OrderMagicNumber()==magic)
{
bool del=OrderDelete(OrderTicket());
if (del==true)
{
otl_b=0; otl_s=0; //обнуляем переменные отложек
}
}
}
}
}
Une autre question, qu'ai-je écrit de faux dans le bloc pour supprimer les ordres ? Il ne supprime pas toujours les ordres, le journal indique que
market order #1 cannot be deleted
{
for(int n=OrdersTotal()-1;n>=0;n--)
{
if(OrderSelect(n,SELECT_BY_POS))
{
if(OrderMagicNumber()==magic)
{
bool del=OrderDelete(OrderTicket());
if (del==true)
{
otl_b=0; otl_s=0; //обнуляем переменные отложек
}
}
}
}
}
Vous essayez de supprimer un ordre au marché, ils ne sont pas supprimés, ils sont fermés à l'aide de la fonction OrderClose(). Pour que la boucle se supprime ou se ferme correctement, nous devons distinguer l'ordre par son type.
if(OrderType()<=OP_SELL) - pour les ordres au marché, if(OrderType()>OP_SELL) - pour les ordres en attente.
Il existe un élément appeléCHARTEVENT_MOUSE_MOVE.
Question : cela fonctionne-t-il sur les appareils mobiles où il n'y a pas de souris ?
Veuillez m'indiquer à quoi devrait ressembler la condition. Si un stop loss est déclenché, le lot est alors multiplié par 2, et si l'ordre suivant déclenche un take profit, le lot revient au lot initial, qui était avant le stop loss.
Je le comprends comme ça, mais je ne sais pas comment continuer...
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
{
if (OrderMagicNumber()==magic)
{
if (OrderStopLoss()==OrderClosePrice())
{
lot=lot*4;
}
}
}
}
Veuillez m'indiquer à quoi devrait ressembler la condition. Si un stop loss est déclenché, le lot est alors multiplié par 2, et si l'ordre suivant déclenche un take profit, le lot revient au lot initial, qui était avant le stop loss.
Je le comprends comme ça, mais je ne sais pas comment continuer...
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
{
if (OrderMagicNumber()==magic)
{
if (OrderStopLoss()==OrderClosePrice())
{
lot=lot*4;
}
}
}
}
La solution à ce problème dépend de la logique complète de l'Expert Advisor, vous pouvez retracer le déclenchement du stoploss ou du takeprofit par son commentaire.
if(StringFind(OrderComment(),"tp")>=0)// сработал тейкпрофит
...
Vous ne comprenez pas.
Vous devez créer une seule fonction qui remplit et trie le tableau déclaré au niveau global. Le tableau devra être transmis à la fonction par référence.
Et vous avez besoin de fonctions supplémentaires qui extrairont de ce tableau les données dont vous avez besoin.