[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 207

 
Un conseil, s'il vous plaît : lors de la création de la fonction ObjectCreate (lors de la création d'une ligne de tendance), j'obtiens une raie, qui, en suivant d'un point à l'autre a une continuation sur le graphique seulement à droite.
 
DemanRap: Ainsi, le rayon qui va d'un point à l'autre ne continue que vers la droite du graphique, mais comment puis-je le faire continuer vers la gauche ?
Ne pouvez-vous pas dessiner un rayon vers la gauche, ou voulez-vous une ligne droite au lieu d'un rayon?
 
Je veux que mon robot soit capable de suivre la position de ce rayon sur des données historiques. Par exemple, je veux vérifier à quel point il serait proche d'autres fractales, et pas seulement des 2 fractales sur lesquelles je l'ai construit à l'origine.
 
Oui. Mon but est donc d'obtenir une ligne droite.
 
DemanRap: Oui. Mon but est donc d'obtenir une ligne droite.

datetime time1 = …;
double price1 = …;

datetime time2 = …;
double price2 = …;

datetime timeDifference =  time2 – time1;  // добавить
double priceDifference = price2 – price1;  // добавить

ObjectCreate("trend_line1", OBJ_TREND, 0, time1, price1, time2, price2);
ObjectCreate("trend_line2", OBJ_TREND, 0, time1, price1, time1 - timeDifference, price1 - priceDifference); // добавить

Pour obtenir une ligne droite, essayez d'ajouter les lignes mises en évidence

 
Merci beaucoup, mais il s'est avéré que c'était beaucoup plus simple. J'ai simplement dessiné un autre rayon et échangé le temps1, le prix1 et le temps2 le prix2. Mais cela m'a pris une journée entière pour le découvrir))))
 
Aleksander:

Et eux ? - global au niveau du terminal ?

ils stockent un certain temps dans le fichier variable :-) date d'accès, nom et valeur de type double


La question sur les variables GV est la suivante... Dans le livre de S.K. sur MQL4, au chapitre "GlobalVariables" dans la section "Properties of GV-Variables" il est écrit : "Une variable GV ne peut être que de type double". Ci-dessous, dans la section "Function GlobalVariableDel()", on trouve un exemple d'expert globalvar.mq4 avec le contenu suivant :

//--------------------------------------------------------------------
// globalvar.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int    Experts;                                 // Колич. экспертов
double Depo=10000.0,                            // Заданный депозит
       Persent=30,                              // Заданный процент     
       Money;                                   // Искомые средства
string Quantity="GV_Quantity";                  // Имя GV-переменной
//--------------------------------------------------------------------
int init()                                      // Спец. функция init
  {
   Experts=GlobalVariableGet(Quantity);         // Получим тек. знач.
   Experts=Experts+1;                           // Колич. экспертов
   GlobalVariableSet(Quantity, Experts);        // Новое значение
   Money=Depo*Persent/100/Experts;              // Средства для эксп.
   Alert("Для эксперта в окне ", Symbol()," выделено ",Money);
   return;                                      // Выход из init()
  }
//--------------------------------------------------------------------
int start()                                     // Спец. функция start
  {
   int New_Experts= GlobalVariableGet(Quantity);// Новое колич. эксп.
   if (Experts!=New_Experts)                    // Если изменилось
     {
      Experts=New_Experts;                      // Теперь текущ. такое
      Money=Depo*Persent/100/Experts;           // Новое знач. средств 
      Alert("Новое значение для эксперта ",Symbol(),": ",Money);
     }
   /*
   ...
   Здесь долен быть указан основной код эксперта,
   в котором используется значение переменной Money
   ...
   */
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------
int deinit()                                    // Спец. ф-ия deinit
  {
   if (Experts ==1)                             // Если эксперт один..
      GlobalVariableDel(Quantity);              //..удаляем GV-перемен
   else                                         // А иначе..
      GlobalVariableSet(Quantity, Experts-1);   //..уменьшаем на 1
   Alert("Эксперт выгружен из окна ",Symbol()); // Сообщ. о выгрузке
   return;                                      // Выход из deinit()
  }
//--------------------------------------------------------------------

Question : pourquoi dans cet exemple les variables GV Expert et New_Expert sont de type int. alors que, comme indiqué précédemment, ces variables devraient être de type double ?

 

Bonjour, pouvez-vous me dire ce qui peut clocher avec l'EA ?

//+------------------------------------------------------------------+
//|                                                           iB.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

int MagicNumber = 1981;
//-----------------------------------------
extern double  Percent        = 0.8;
extern double  Lots           = 0.1;

bool Accept()
  {
   bool TradeOpen;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
        {
         if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) TradeOpen=false;
            else TradeOpen=True;
         if (OrderType() == OP_BUY)
            {if (OrderStopLoss() < (Low[1] * Point)) 
                  OrderModify(OrderTicket(),OrderOpenPrice(),(Low[1] * Point),0,0,Green);}
         if (OrderType() == OP_SELL) 
            {if (OrderStopLoss() > (High[1] * Point)) 
                  OrderModify(OrderTicket(),OrderOpenPrice(),(High[1] * Point),0,0,Red);}
        }
     }

   return(TradeOpen);
  }
//-------------------------------------------------------------------+
int start()
  {
//----
   if (Accept())
   {
      if(High[1]<High[2] && Low[1]>Low[2])   
         if ((High[1]-Low[1])/(High[2]-Low[2])<Percent)
       {
         OrderSend(Symbol(), OP_BUYSTOP, Lots, High[1], 3, Low[2], 0, "iB", MagicNumber, 0, Green);
         OrderSend(Symbol(), OP_SELLSTOP, Lots, Low[1], 3, High[2], 0, "iB", MagicNumber, 0, Red);
       }
   }
   return(0);
  }
//+------------------------------------------------------------------+
Il compile sans problème, sans erreur, mais il n'échange pas. J'ai essayé de commenter différents blocs de code, mais je n'ai pas trouvé le coupable. Je n'ai pas remarqué de problèmes de logique.
 
J'ai oublié mon mot de passe sur mon ancien compte de démonstration. Où puis-je le trouver ?
 
MikeM:
J'ai oublié mon mot de passe sur mon ancien compte de démonstration. Où puis-je le trouver ?


Vous ne l'avez nulle part, si vous n'avez pas pris soin de le sauvegarder vous-même - j'ai vérifié auprès de l'équipe d'assistance de l'une des sociétés de courtage.

Vous devez vérifier votre courrier électronique - lorsque vous ouvrez un compte, ils vous envoient tous ses paramètres, y compris les mots de passe...