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

 
Igor Makanu:

parce que vous devez vous y habituer

Vous pouvez également vous entraîner à toujours porter un parapluie, car il peut pleuvoir. Vous pouvez aussi vous habituer à un autre, mais tout le monde le cache après chaque utilisation.

 
Alexey Viktorov:

Vous pouvez également vous habituer à toujours marcher avec un parapluie, car il peut pleuvoir. On peut aussi s'habituer à un autre, mais tout le monde le cache après chaque utilisation.

On en parle ?

juste pour commencer, le voici :

c = a/b ;

ou

si(b!=0) c = a/b ;

?

ZS : Malheureusement, je suis le seul de ma famille à ne pas avoir de parapluie, je ne peux rien y faire, je suis toujours en voiture, un parapluie est plus un obstacle qu'une aide.

 
Igor Makanu:

On en parle ?

juste pour commencer, le voici :

c = a/b;

ou

si(b!=0) c = a/b;

?

ZS : malheureusement je suis le seul de ma famille à ne pas avoir de parapluie, je ne peux rien dire à ce sujet, je suis toujours en voiture, un parapluie est plus un obstacle qu'une aide

La réponse était ici.

Forum pour le trading, les systèmes de trading automatisés et le testeur de stratégie

Toutes les questions des débutants de MQL4, l'aide et la discussion sur les algorithmes et les codes

Andrey Sokolov, 2019.04.20 06:24

Je ne sais pas exactement ce qu'il faut normaliser ici et pourquoi, alors qu'il n'y a pas d'opérations mathématiques?
Qu'en est-il du deuxième exemple ?
 
Alexey Viktorov:

La réponse était ici

Qu'en est-il du deuxième exemple ?

Comment expliquer le problème... sur un autre forum j'ai eu une conversation similaire sur le même sujet, mais là je défendais l'opinion que le prix actuel n'a pas besoin d'être normalisé, et l'adversaire faisait du bruit en disant que même l'offre et la demande doivent être normalisées - je ne veux pas regarder, mais l'opinion des développeurs était que les prix du serveur sont toujours corrects

ok, ne pas normaliser, c'est à vous de voir.

 
Igor Makanu:

comment expliquer le problème... sur un autre forum, j'ai eu une conversation similaire sur le même sujet, mais là, j'ai défendu l'opinion que le prix actuel n'a pas besoin d'être normalisé, et l'adversaire faisait du bruit en disant que même les Bid et Ask devaient être normalisés - je ne veux pas regarder, mais l'opinion des développeurs était que les prix du serveur sont toujours corrects

ok, ne le normalisez pas, c'est à vous de voir.

L'opposant bruyant est loin d'avoir toujours raison. À mon avis, vous devriez toujours être guidé par la logique et prendre vos propres décisions. Et ne vous agitez pas pour l'une ou l'autre des opinions d'autrui.

 
Alexey Viktorov:

Un adversaire bruyant n'a pas toujours raison. À mon avis, il faut toujours être guidé par la logique et prendre ses propres décisions. Et ne vous agitez pas pour une opinion ou une autre.

la logique est le manuel des développeurs, un exemple correct est écrit, prenez-le et utilisezhttps://docs.mql4.com/ru/trading/ordersend.

Je n'ai aucune information sur le format dans lequel les données sont envoyées au serveur, peut-être les prix sont-ils envoyés sous forme de texte ?

j'ai un exemple dans l'aide, donc c'est vrai - comme on dit dans l'armée, luminescent veut dire luminescent ! )))

OrderSend - Торговые функции - Справочник MQL4
OrderSend - Торговые функции - Справочник MQL4
  • docs.mql4.com
[in]  Цвет открывающей стрелки на графике. Если параметр отсутствует или его значение равно CLR_NONE, то открывающая стрелка не отображается на графике. При открытии рыночного ордера (OP_SELL или OP_BUY) в качестве цены открытия могут использоваться только самые последние цены Bid (для продажи) или Ask (для покупки). Если операция проводится по...
 
Igor Makanu:

la logique - c'est le manuel du développeur, un exemple correct est écrit, prenez-le et utilisezhttps://docs.mql4.com/ru/trading/ordersend.

Je n'ai aucune information sur le format dans lequel les données sont envoyées au serveur, peut-être les prix sont-ils envoyés sous forme de texte ?

j'ai un exemple dans Help, donc c'est vrai - comme on dit dans l'armée, luminescent veut dire luminescent ! )))

Igor, vois au moins un exemple avant de commencer à discuter.

void OnStart()
  {
//--- получим минимальное значение Stop level
   double minstoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
   Print("Minimum Stop Level=",minstoplevel," points");
   double price=Ask;
//--- вычисленные значения цен SL и TP должны быть нормализованы
   double stoploss=NormalizeDouble(Bid-minstoplevel*Point,Digits);
   double takeprofit=NormalizeDouble(Bid+minstoplevel*Point,Digits);
//--- размещаем рыночный ордер на покупку 1 лота
   int ticket=OrderSend(Symbol(),OP_BUY,1,price,3,stoploss,takeprofit,"My order",16384,0,clrGreen);
   if(ticket<0)
     {
      Print("OrderSend завершилась с ошибкой #",GetLastError());
     }
   else
      Print("Функция OrderSend успешно выполнена");
//---
  }

Après tout, dans l'exemple de la documentation, le prix n'est pas normalisé sans calculs mathématiques. Et dans l'armée, on dit aussi "Hé vous trois, venez ici, tous les deux"... mais il ne faut pas imiter qui que ce soit.

 
Alexey Viktorov:

Igor, tu pourrais au moins regarder l'exemple avant d'argumenter.

Après tout, dans l'exemple de la documentation, le prix n'est pas normalisé sans calculs mathématiques. Et à l'armée, on dit aussi "Hé vous trois, venez ici, tous les deux"... mais il ne faut pas imiter qui que ce soit.

Je n'ai pas normalisé le prix dans mon exemple :

ticket_sell=OrderSend(_Symbol, OP_SELL, 0.1, Bid,10,
                     NormalizeDouble(0.0,_Digits),NormalizeDouble(0.0,_Digits), "", 0, 0, clrRed);  

Si vous voulez envoyer un mandat en tant qu'auteur du code, je ne vous dérangerai pas :

ticket_sell=OrderSend(NULL, OP_SELL, 0.1, Bid, 0, 0, 0, "", 0, 0, Red);  
 
Igor Makanu:

Je n'ai pas normalisé le prix dans mon exemple :

Si vous voulez envoyer une commande en tant qu'auteur du code, je ne vous dérangerai pas :

Y a-t-il eu des exemples où le courtier n'a pas accepté les bons chiffres? Je remarque que dans les tutoriels vidéo de personnes réputées, ils définissent des entiers dans ordersend().


L'autre chose est peut-être un peu différente dans ce cas. J'avais une fonction de comparaison qui refusait en quelque sorte d'accepter comme égales une variable de type double et soit OrderStoploss() soit OrderTakeProfit() avec les mêmes valeurs, jusqu'à ce que je les normalise toutes les deux.

 
Andrey Sokolov:

Y a-t-il eu des exemples de numéros corrects non acceptés par le courtier ? Je remarque que dans les tutoriels vidéo de personnes réputées, la fonction ordersend() est réglée sur des entiers.

L'autre chose est peut-être un peu différente dans ce cas. D'une manière ou d'une autre, une fonction de comparaison n'acceptait pas une variable de type double et soit OrderStoploss() soit OrderTakeProfit() avec la même valeur, jusqu'à ce que je les normalise toutes les deux.

Nous parlons probablement d'un tel exemple :

 double x = 5/2;
 Print("x = ",x);

//ответ 
//х = 2.0
  

et ça pourrait être comme ça :

 double x = 5.0/2.0;
 Print("x = ",x);

//ответ
//x=2.5

Je ne sais pas si le serveur accepte les nombres entiers, ainsi que les personnes faisant autorité, j'ai depuis longtemps constitué moi-même une bibliothèque (correcte à mon avis) pour travailler avec les commandes, voici ma bibliothèquehttps://www.mql5.com/ru/code/24829.

Dans le fichier TradePanel_C#.mqh ma bibliothèque et la fonction d'ouverture des ordres OrderSend_(), j'écris mes codes de la façon suivante

TradePanel_Csharp
TradePanel_Csharp
  • www.mql5.com
Торговая панель, которая работает и в Визуализаторе Тестера.Таблица текущих ордеров/позиций.Таблица истории торгов (корректно работает на Хедж-счетах). Использование Ручная торговля в Тестере или вмешивание в работу советника (например, с целью проверки устойчивости ко внешним факторам).Ручная торговля в Терминале на демо/реальных...