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

 
Tretyakov Rostyslav #:

Et je n'ai pas remarqué l'éléphant)))) A votre avis, à quoi correspond le prix de clôture d'un ordre ouvert ?

Essayez de le faire de cette façon.

Une autre question

Comment calculez-vous le profit en points - est-ce OrderProfit * Point ?

 
Mihail Matkovskij #:

Puis SymbolInfoDouble

Pourquoi pas tout de suite ?

 
Alexander Avksentyev #:

Une autre question

Le calcul du profit en pips est-il un OrderProfit * Point ?

OrderProfit Renvoie la valeur du bénéfice net, (ceux dans la devise de dépôt)
Point-
Taille du point de l'instrument actuel dans la devise de cotation

Tous à partir de la référence

 
Andrey Sokolov #:

OrderProfit Renvoie la valeur du bénéfice net, (ceux dans la devise de dépôt)
Point - Taille du point de l'instrument actuel dans la devise de cotation

Tous à partir de la référence

Je suis d'accord, j'ai lu la référence.

J'ai multiplié le bénéfice par le point et j'ai obtenu 0,00001 ou moins.

 
Alexander Avksentyev #:

Je suis d'accord, j'ai lu la référence.

J'ai multiplié le bénéfice par Point et j'ai obtenu 0,00001 ou moins.

C'est une chose étrange à faire

 
Alexander Avksentyev #:

Une autre question

Le calcul du profit en pips est-il un OrderProfit * Point .

Le prix peut passer 20 pips et donner 50$ de profit.

Il peut passer en 5 points, mais le bénéfice sera de 80 $.

C'est la même chose pour chaque symbole, avec le franc le profit sera plus grand qu'avec le canadien dans le même passage en pips.

 
Artyom Trishkin #:

Pourquoi pas tout de suite ?

J'ai écrit un exemple simple en ligne. Je ne suis même pas entré dans l'éditeur. Alexandre est un programmeur novice et il n'a pas besoin d'une complexité supplémentaire. Jetez un coup d'œil à son code ci-dessus. Mais si nous parlons de développer un robot multi-symboles, vous pouvez utiliser SymbolInfoDouble. Qui vous empêche de le faire ?

 
Mihail Matkovskij #:

La fonction SymbolInfoTick écrit les données tick dans une structure spécialeMqlTick, à partir des champs de laquelle elles peuvent être récupérées.

grâce à

 

Une autre question a été soulevée

J'ai fait l'inscription dans le coin

//+-----------------------------------------------------------------------------------------------+
int OnInit()
  {
Start          = TimeCurrent();
MaxMartinLot   = Lot*MathPow(1.4,OrdersClose);
MaxMartinLot2  = Lot*MathPow(K_Martin2,OrdersClose2);
AC             = StringConcatenate(" ", AccountCurrency());
int Y          = 20;
DrawLABEL("lab_Take",1,5,Y,clrLime,"LOT: "); 
return(INIT_SUCCEEDED);
  }
//+-----------------------------------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+-----------------------------------------------------------------------------------------------+
void OnTick()
  {
// Получим значение индикатора
   dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.

// Если нет открытых ордеров, то входим в условие
      if(CountOrders()==0)
     {
// Если появился сигнал на покупку, то откроем ордер на покупку
      if(bSignalBuy() == true)
         vOrderOpenBuy();

// Если появился сигнал на продажу, то откроем ордер на продажу
      if(bSignalSell() == true)
         vOrderOpenSell();
     }
       DrawLABEL("lab_Take",1,5,0,Color(),StringConcatenate("LOT: ",DoubleToStr(LOT(),2)));  
  }

dans la ligne jaune donne cet avertissement :

perte éventuelle de données due à la conversion de type

On dirait que je les ai mélangés.

tout fonctionne

s'il n'y a pas de transaction, une seule couleur est allumée

s'il y a une transaction ouverte - s'allume d'une autre couleur

Color() le définit de cette façon :

double Color()
  {
   double CL =clrRed;
   if(CountOrders()==0) CL =clrYellow;
   return(CL);
  }
Jetez-y un coup d'œil.
 
законопослушный гражданин perte éventuelle de données due à la conversion de type

On dirait que je les ai mélangés.

tout fonctionne

s'il n'y a pas de transaction, une seule couleur est allumée

s'il y a une transaction ouverte - s'allume d'une autre couleur

Color() le définit de cette façon :

Jetez-y un coup d'œil.

La fonction Color devrait retourner la couleur, et non le double.

color Color()
  {
   color CL = clrRed;
   if(CountOrders() == 0) 
     CL = clrYellow;
   return(CL);
  }

Le lien que le moteur du site a ajouté serait également utile à étudier.