Questions des débutants MQL4 MT4 MetaTrader 4 - page 256

 
atztek #:
Sur mon vieil ordinateur portable avec processeur i3, j'ai encore WinXP 32 bits, non pris en charge par MT5. Récemment, j'ai augmenté la mémoire à 6 Go, je voudrais installer un système d'exploitation 64 bits pour MT4 et MT5. Quel est le meilleur choix - Win7 ou Win8.1 ?

Je préfère le 7. Le bureau a un 8, un 10 et un 7. Les terminaux sur 7 sont plus stables. Pour des raisons inconnues, les testeurs en 7 sont plus rapides sur les ordinateurs faibles. 8ka n'est pas du tout transitoire. Il consomme le plus de ressources. 10 exige plus de ressources pour lui-même.

 
atztek #:
Mon ancien ordinateur portable avec processeur i3 avait encore WinXP 32 bits installé, non pris en charge par MT5. Récemment, j'ai augmenté la mémoire à 6 Go, je voudrais installer un système d'exploitation 64 bits qui supporterait MT4 et MT5. Lequel est préférable - Win7 ou Win8.1 ?

Rendez-vous sur le site Web du fabricant de votre ordinateur portable et voyez pour quel système d'exploitation maximal les pilotes officiels sont destinés. Si les pilotes sont pour Win 8.1, vous pouvez essayer Win 10. Si les pilotes se retrouvent dans Win 7, il n'y a pas beaucoup de choix.

 

Bonjour, pouvez-vous m'aider ?

J'ai besoin d'ajouter un take profit à cet EA et d'afficher des paramètres à modifier lorsque l'EA fonctionne.

il y a deux avertissements la valeur de retour de 'OrderClose' devrait être vérifiée aussi s'il vous plaît corriger


extern double Lots = 0.1 ;

extern double MaximumRisk = 0.3 ;

extern double DecreaseFactor = 100 ;

double st1,st2 ;

//+------------------------------------------------------------------+

//| Calculer les positions ouvertes |

//+------------------------------------------------------------------+

int CalculateCurrentOrders(string symbol)

{

int buys=0,sells=0 ;

//----

for(int i=0;i<OrdersTotal();i++)

{

si(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break ;

si(OrderSymbol()==Symbol())

{

si(OrderType()==OP_BUY) achète++ ;

si(OrderType()==OP_SELL) vend++ ;

}

}

//---- volume des commandes de retour

if(buys>0) return(buys) ;

sinon retour(-vendues) ;

}

//+------------------------------------------------------------------+

//| Calculer la taille optimale du lot |

//+------------------------------------------------------------------+

double LotsOptimized()

{

double lot=Lots ;

int orders=HistoryTotal() ; // total des commandes historiques

int pertes=0 ; // nombre d'ordres de pertes sans pause

//---- sélectionner la taille du lot

lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,3) ;

//---- calcule le nombre d'ordres de pertes sans rupture.

si(Facteur de diminution>0)

{

for(int i=ordres-1;i>=0;i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Erreur dans l'historique !") ; break ; }

if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continuer ;

//----

si(OrderProfit()>0) break ;

si(OrderProfit()<0) pertes++ ;

}

if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1) ;

}

//---- retourner la taille du lot

si(lot<0.1) lot=0.1 ;

retour(lot) ;

}

//+------------------------------------------------------------------+

//| Vérifier les conditions d'un ordre ouvert |

//+------------------------------------------------------------------+

void CheckForOpen()

{

int res ;

si(Volume[0]>1) retour ;


//---- acheter -----------------------

si ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))

if ((Open[0]<Open[1])&&(Close[0]<Close[1])

//

{

res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,15,0,",0,0,Blue) ;

retour ;

}

//---- vendre ------------------------

Si ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))

if((Open[0]>Open[1])&&(Close[0]>Close[1]))

{

res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,15,0,",0,0,Red) ;

retour ;

}

}

//------------Закрытие позиций----------------------------------------

void CheckForClose2()

{

if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,White) ;

Si(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Blue) ;

//CheckForOpen() ;

}


//

//+------------------------------------------------------------------+

//| Vérifier les conditions d'ordre de fermeture |

//+------------------------------------------------------------------+

void CheckForClose1()

{

si(Volume[0]>1) retour ;

//vérifier les pertes

si ((AccountProfit()<0)&&(MathAbs(AccountProfit())>=(AccountMargin()*MaximumRisk)))

{

CheckForClose2() ;

Print("perte", AccountProfit()) ;

}/**/

//---- type d'ordre de contrôle

si(OrderType()==OP_BUY)

{

Si ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))

if ((Open[0]>Open[1])&&(Close[0]>Close[1]))

CheckForClose2() ;

}

si(OrderType()==OP_SELL)

{

si ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))

if ((Open[0]<Open[1])&&(Close[0]<Close[1]))

CheckForClose2() ;

}


}

//+------------------------------------------------------------------+

//| Démarrer la fonction |

//+------------------------------------------------------------------+


void start()

{


//---- calculer les ordres ouverts par le symbole actuel

si(CalculateCurrentOrders(Symbol())==0) CheckForOpen() ;

sinon CheckForClose1() ;

//---

}

//+-----------------------------------------------+

MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
  • www.metaquotes.net
Торговая платформа MetaTrader 5 - это бесплатный инструмент трейдера, позволяющий торговать на форексе и фондовых биржах
 
bob88 #:



extern double Lots               = 0.1;

extern double MaximumRisk        = 0.3;

extern double DecreaseFactor     = 100;

extern int stopLoss = 15;
extern int takeProfit = 30;


//+------------------------------------------------------------------+

//| Check for open order conditions                                  |

//+------------------------------------------------------------------+

void CheckForOpen()

  {

  int res;
  double openPrice, sl, tp;

 if(Volume[0]>1) return;



//---- покупаем -----------------------

  

  if ( (iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))) 

     if  ((Open[0]<Open[1])&&(Close[0]<Close[1])) 

    

  //  

     {
      openPrice = NormalizeDouble(Ask, Digits);
      sl = NormalizeDouble(openPrice - stopLoss * Point, Digits);
      tp = NormalizeDouble(openPrice + takeProfit * Point, Digits);
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),openPrice,3,sl,tp,"",0,0,Blue);

      return;

     }

//---- продаем ------------------------

if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0)))  

    if((Open[0]>Open[1])&&(Close[0]>Close[1]))

     {
      openPrice = NormalizeDouble(Bid, Digits);
      sl = NormalizeDouble(openPrice + stopLoss * Point, Digits);
      tp = NormalizeDouble(openPrice - takeProfit * Point, Digits);
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),openPrice,3,sl,tp,"",0,0,Red);

      return;

     }

     

  }

Ajout des calculs SL et TP, mais il serait bien d'ajouter une vérification pour eux. Vous pouvez lire comment faire dans l'articlehttps://www.mql5.com/ru/articles/2555#invalid_SL_TP_for_position.

Votre avertissement n'est pas critique. Le résultat de OrderClose est simplement ignoré, d'où l'avertissement. Vous pouvez, par exemple, faire en sorte que la fonction CheckForClose2 renvoie le résultat de OrderClose. Ou vous pouvez le laisser tel quel.

J'ai également remarqué que les noms des fonctions CheckForClose2,CheckForOpen, etc. étaient étranges .Et vous les faites effectuer des opérations commerciales.

Какие проверки должен пройти торговый робот перед публикацией в Маркете
Какие проверки должен пройти торговый робот перед публикацией в Маркете
  • www.mql5.com
Все продукты Маркета перед публикацией проходят обязательную предварительную проверку для обеспечения единого стандарта качества. В этой статье мы расскажем о наиболее частых ошибках, которые допускают разработчики в своих технических индикаторах и торговых роботах. А также покажем как самостоятельно проверить свой продукт перед отправкой в Маркет.
 
Bonjour à tous. Quelqu'un peut-il m'aider à modifier l'EA ? J'ai besoin de supprimer la fonction d'ouverture des ordres, de sorte que l'EA n'ouvre pas les ordres par lui-même, mais fonctionne uniquement avec des ordres ouverts manuellement. Merci d'avance.
Dossiers :
 
Иван Макаров #:
Bonjour à tous. Quelqu'un peut-il m'aider à modifier l'EA ? Je dois supprimer la fonction d'ouverture des ordres pour que l'EA n'ouvre pas les ordres par lui-même mais ne fonctionne qu'avec des ordres ouverts manuellement. Merci d'avance.

Supprimez la fonction d'ouverture des commandes et réglez magic sur 0. Le robot récupère les commandes ouvertes manuellement et les suit. Si nous voulons que le robot ne suive que des ordres individuels, et non pas tous les ordres d'un coup, il faut alors effectuer l'entrée dans Achat et Vente, par exemple, en appuyant sur le bouton approprié que le robot doit créer et traiter dans l'événement CHARTEVENT_OBJECT_CLICK du OnChartEvent de chacun d'eux. La magie dans ce cas doit être supérieure à 0 afin de ne travailler qu'avec ses propres ordres.

 
Salutations. Comment faire pour ajouter la fonction de trading de temps à l'EA mt4 ? Je veux que mon EA fonctionne de 00h00 à 23h00 et ne fasse rien pendant le reste de l'heure. Peut-être que quelqu'un a un morceau de code et comment l'implémenter. J'ai une bonne idée de la manière dont je peux l'implémenter dans mon EA.
 
Иван Макаров trading de temps à mt4 EA. Je veux que mon EA fonctionne de 00.00 à 23.00 et ne fasse rien pendant l'heure suivante. Peut-être que quelqu'un a un morceau de code et comment l'implémenter. J'ai une bonne idée de la manière dont je peux l'implémenter dans mon EA.

https://www.mql5.com/ru/forum/131859/page9#434297

isTradeTimeString()

isTradeTimeInt()

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 

Bonjour.

Un tel pépin... Je suis en train d'en tester un ! Expert sur 3 ordinateurs. Deux d'entre eux fonctionnent correctement, tandis que l'un d'entre eux présente toujours une sorte de bogue dans les calculs - en général, il ne calcule pas correctement le stop loss ou le faux déclenchement.

Le matériel n'est pas nouveau, mais pas vieux non plus.

Quelqu'un a-t-il déjà rencontré un tel problème ?

 
Zalevsky1234 stop loss ou le faux déclenchement.

Le matériel n'est pas nouveau, mais pas vieux non plus.

Quelqu'un a-t-il eu des problèmes avec cela ?

Les trois sont connectés au même serveur de courtage/dealer ? (Je veux dire, est-ce la même histoire ?) Si ce n'est pas le cas, c'est le premier endroit à regarder.

Raison: