新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 814

 
Igor Makanu:

因为你必须习惯于它

你也可以训练自己总是带着一把伞,因为可能会下雨。你也可以习惯另一个,但每次使用后大家都会把它藏起来。

 
Alexey Viktorov:

你也可以让自己习惯于总是带着雨伞走路,因为可能会下雨。你也可以习惯另一个,但每次使用后大家都会把它藏起来。

我们应该谈谈吗?

只是作为开始,这里是。

c=a/b。

if(b!=0) c = a/b。

?

ZS:不幸的是,我是家里唯一没有雨伞的人,我不能说什么,我总是在车里,雨伞是阻碍而不是帮助。

 
Igor Makanu:

我们可以谈谈吗?

只是作为开始,这里是。

c=a/b

if(b!=0) c =a/b

?

ZS:不幸的是,我是家里唯一没有雨伞的人,我不能说什么,我总是在车里,雨伞是阻碍而不是帮助。

答案就在这里。

关于交易、自动交易系统和策略测试器的论坛

任何关于MQL4初学者的问题,帮助和讨论算法和代码

Andrey Sokolov, 2019.04.20 06:24

不太清楚这里要归一化什么,为什么要归一化,因为没有数学运算
第二个例子呢?
 
Alexey Viktorov:

答案就在这里

第二个例子呢?

如何解释这个问题...在另一个论坛上,我就同样的话题进行了类似的对话,但在那里我为当前价格 不需要规范化的观点辩护,而对手则吵着说甚至连出价和要价都需要规范化--我不想看,但开发者的观点是,服务器的价格总是正确的。

好的,不要正常化,这取决于你。

 
Igor Makanu:

如何解释这个问题...在另一个论坛上,我就同样的话题进行了类似的对话,但在那里我为当前价格 不需要规范化的观点辩护,而对手则吵着 说甚至连出价和要价都需要规范化--我不想看,但开发者的观点是服务器价格总是正确的。

好吧,不要把它正常化,这取决于你。

喧闹的对手远非总是正确的。在我看来,你应该始终以逻辑为指导,做出你自己的决定。也不要为别人的这种或那种意见而激动。

 
Alexey Viktorov:

吵闹的对手并不总是正确的。在我看来,一个人必须始终以逻辑为指导,做出自己的决定。也不要为别人的这种或那种意见而激动。

逻辑是开发人员的手册,写了一个正确的例子,拿去用吧https://docs.mql4.com/ru/trading/ordersend

我没有关于数据被发送到服务器的格式的信息,也许价格是以文本形式发送的?

我在《帮助》中举了一个例子,所以这是真的--正如他们在军队中所说的那样,发光的意思是发光的!)))

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

逻辑 - 这是开发人员的手册,写了一个正确的例子,拿去用吧https://docs.mql4.com/ru/trading/ordersend

我没有关于数据被发送到服务器的格式的信息,也许价格是以文本形式发送的?

我在《帮助》中举了一个例子,所以这是真的--正如他们在军队中所说的,发光就是发光!)))

伊戈尔,在你开始争论之前,至少要看到一个例子。

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 успешно выполнена");
//---
  }

毕竟,在文件中的例子中,价格没有经过数学计算就被规范化了。在军队里他们也会说 "嘿,你们三个,过来,你们两个"......但你不应该模仿任何人。

 
Alexey Viktorov:

伊戈尔,你至少可以在争论之前看一下这个例子。

毕竟,在文件中的例子中,价格没有经过数学计算就被规范化了。在军队里,他们也说'嘿,你们三个,过来,你们两个'......但你不应该模仿别人。

在我的例子中,我没有将价格正常化。

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

如果你想以代码作者的身份发一份授权书,我不会打扰你。

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

在我的例子中,我没有将价格正常化。

如果你想作为代码的作者发送一个订单,我不会打扰你。

是否有经纪人不接受正确数字的 例子?我注意到,在知名人士的视频教程中,他们在ordersend()中设置了整数。


也许在这种情况下,另一件事有点不同。我有一个比较函数,不知何故拒绝接受一个双倍类型的变量和具有相同数值的OrderStoploss()或OrderTakeProfit()相等,直到我将它们都规范化。

 
Andrey Sokolov:

是否有正确数字 不被经纪人接受的例子?我注意到,在知名人士的视频教程中,ordersend()被设置为整数。

也许在这种情况下,另一件事有点不同。我有一个比较函数不接受一个双倍类型的变量和OrderStoploss()或OrderTakeProfit()的相同值,直到我把它们都规范化。

我们说的可能就是这样一个例子。

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

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

而它可能是这样的。

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

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

我不知道服务器是否接受整数,以及权威人士,我早就自己形成了一个处理订单的库(在我看来是正确的),这里是我的库https://www.mql5.com/ru/code/24829

在TradePanel_C#.mqh文件中,我的库和开立订单的函数OrderSend_(),我是这样写代码的

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