[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 288

 
TheXpert писал(а) >>

Tut. L'expression que vous avez citée est tout à fait digne d'intérêt.

Merci !

 
Bonne journée à tous). J'ai le système de trading de Grebenshchikov. Il fonctionne dans le canal et sur la rupture du canal et l'entrée par des ordres en attente hors d'un plat. Je voudrais le tester sur l'historique et mettre à jour le MM avec. Peut-être que quelqu'un a déjà implémenté ce système dans le code ? Quels éléments peuvent être utilisés pour construire un tel système ? Voici la description du système http://www.fx4u.ru/rinki-forex-commodities-cfd-futures-f14/strategii-opitnih-f4/ts-grebenschikova-si-forex-i-mi-t529.html.
 

J'ai une question

vous pouvez faire un convertisseur de période pour afficher un graphique moyen des quatre principales paires ...

Considérant que le dollar-yen a un prix de, disons, 101,50, traduisez-le dans l'état de 1,0150, puis utilisez-le pour construire un graphique moyen ...

Oui et il serait bon d'utiliser cette carte moyenne dans le test et l'optimisation ...

merci d'avance pour votre écoute ...

 

Bonjour à tous et à toutes !

Voici le code (uniquement la fonction de démarrage)

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения средних на 0-ом и 1-ом барах
    double MAF_0 = iMA(NULL, 0, MAFP, 0, 1, 1, 0);
    double MAF_1 = iMA(NULL, 0, MAFP, 0, 1, 1, 1);
    double MAS_0 = iMA(NULL, 0, MASP, 0, 1, 1, 0);
    double MAS_1 = iMA(NULL, 0, MASP, 0, 1, 1, 1);
    
   // ----открытие позиции Buy покупка-----
    if( MAF_0 > MAF_1 && MAS_0 > MAS_1) { //-условие на покупку--- 
    if( isCloseLastPosByTake( NULL, OP_SELL, MagicNumber) ==true) {
     if( CheckOrders(OP_SELL))                                      {
       if( StopLoss <= StopLevel+ Spread)
         double SL = 0;        else         SL = Ask - StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         double TP = 0;        else         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
                }
               }
              }
   //-------------------Конец блока покупки ------------------
    
  //  ----- Открытие позиции Sell продажа------------  
    if( MAF_0 < MAF_1 && MAS_0 < MAS_1) { //-условие на продажу---
    if( CheckOrders(OP_BUY))                                     {
      if( StopLoss <= StopLevel+ Spread)
         SL = 0;        else         SL = Bid + StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         TP = 0;        else         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
                 }
                }
   //-------------------конец блока продажи -------------------
     
   return(0);
  }//+----------КОНЕЦ ФУНКЦИИ СТАРТ -------------------+

//ЖЖЖЖЖЖЖ Другие вызываемые пользовательские функции ЖЖЖЖЖЖ
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия                                       |
//|  последней позиции по тейку.                                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, otp;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()== sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if ( op<0 || OrderType()== op) {
            if ( mn<0 || OrderMagicNumber()== mn) {
              if ( t<OrderCloseTime()) {
                t=OrderCloseTime();
                j= i;
              }} }}}}}

  if (OrderSelect( j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo( sy, MODE_DIGITS);
    if ( dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    otp=NormalizeDouble(OrderTakeProfit(), dg);
    if ( ocp== otp) return( True);
  }
  return( False);
}
 

Ici, une condition est en quelque sorte mise en œuvre, comme recommandé par rid. Avec ses commentaires et corrections.

Le conseiller expert lui-même compile, négocie.......Ce n'est pas vrai.......

J'ai essayé de mettre seulement long-n un trade dans le testeur, mettre seulement short-n un trade aussi.

La logique est simple, lorsque la condition d'achat est remplie, l'EA fait une transaction, la transaction est fermée au niveau du take profit.

Et ensuite le conseiller attend QUAND LA PROCHAINE CONDITION D'ECHANGE se présente. SEULE CETTE CONDITION DOIT ÊTRE OPPOSÉE À LA PRÉCÉDENTE.

Т. Par exemple, si la transaction portait sur BAY, la prochaine devrait porter sur SHELL.

 

Aussi. Dans ce fil de discussion, mais bien plus tôt, une question similaire à la mienne a été soulevée. Il s'agissait de drapeaux. C'est pour ça qu'il y a toute cette agitation.

 

Une autre question.

Ouvrez 2 fenêtres, la première 5 minutes, la seconde 15 minutes.

Dessinez des MAKs sur les deux (10). Est-il exact que si sur le graphique de 5 minutes nous dessinons une MA avec (30), cela correspond à une MA avec (10) sur le graphique de 15 minutes.

Pour les graphiques de 15 et 30, le coefficient sera de 2.

Pour les graphiques de 30 et 1 heure, le coefficient est de 2.

Pour les cartes de 1h et 4h, le coefficient sera de 4.

Est-ce vrai ou non ? ? ???????????

 

igrok2008 писал(а) >>

Est-ce vrai ou non ? ? ???????????

A proprement parler, non. Mais très proche de ça.

 

Bonjour.

C'est la première fois que j'écris sur le forum. J'espère que ce ne sera pas la dernière. Je suis un novice comparé à ce qu'ils écrivent sur le forum. J'ai appris le langage en un mois environ, il y a six mois, à partir du "Textbook on Programming in MQL4" de Sergei Korolev.

Je l'ai étudié pendant un mois environ il y a six mois avec "Textbook on programming in MQL4" de Sergei Kovalev. J'ai déjà écrit plusieurs Expert Advisors et je les utilise depuis. J'ai écrit quelques Expert Advisors, des indicateurs personnalisés,

...des indicateurs personnalisés, des scripts. J'ai toujours essayé de trouver des réponses à toutes les questions que je ne comprends pas sur le forum. J'ai cependant été confronté à un détail apparemment mineur et je ne trouve pas de réponse.

Aidez-moi, s'il vous plaît.

La question porte sur l'utilisation de #include <XXX.mqh>, j'ai relu l'ensemble du forum, mais je ne trouve pas de réponse. Sur l'un des fils, il est écrit :
.

"...Je peux également ajouter que le fichier eX4 est autosuffisant - pour qu'il fonctionne,
n'a pas besoin d'inclure le code source des fonctions personnalisées.
Vous pouvez copier le fichier ex4, le donner à d'autres commerçants et l'utiliser là-bas.
Elle est complète quelle que soit la technologie utilisée pour l'obtenir."

C'est là le problème. En passant l'EA il ne "voit" pas la fonction, mais écrit lors de la compilation - ne peut pas ouvrir le fichier du programme .

Bien que dans include sur l'autre terminal une entrée non compilée apparaissait dans ex4.

Pouvez-vous expliquer l'erreur. Merci.

 
gvi2504 >> :

... En passant l'EA, il ne "voit" pas la fonction, mais écrit lors de la compilation - ne peut pas ouvrir le fichier du programme .

Bien que dans include sur l'autre terminal une entrée est apparue qui n'est pas compilée dans ex4.

Pouvez-vous expliquer l'erreur. Merci.

Veuillez me donner un exemple, avec les journaux complets. Comment la bibliothèque est appelée dans l'EA, ce qui est dans le titre de la bibliothèque elle-même. Peut-être que c'est ça.

Au fait, TheXpert courait par ici quelque part, il est bon dans ce domaine.

Raison: