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

 
Alexey Viktorov #:

所有指标都在同一条线上工作。相应地,每个指标都会消耗一些CPU资源。放置100500个参数相同的指标,终端会发生什么?如果在接下来的20分钟里,300克土豆足以让你高兴,但你的肩膀上会有满满一麻袋的土豆。你喜欢它吗?

我明白了。谢谢你的解释。
 

你能告诉我,我是否在kodobase的某个地方看到过以这种风格绘制的指标子窗口?

找不到它


 
makssub #:

下午好。我读过关于韦尔的文章。我不会加减法。
我不能说任何关于资金管理的事情,我没有试过。
我已经附上了最新的版本。但我已经把自己的一切都搞乱了)
Order1(2) 所选订单的利润
Order1(3) 所选订单的手数

我无法理解这些代码。

我将尝试解释。我希望你知道所需订单的门票,这使事情变得非常容易。的条件。有一个利润大于零的盈利订单,有一个利润小于零且大于盈利利润的亏损订单,有一个部分关闭亏损订单的条件。

一般来说,如果订单的方向不同,你可以通过OrderCloseBy 来关闭,而不需要多想。较小的损失订单将被关闭,等于较小的利润订单。我们只需要2张票。

我们可以让它变得更复杂,获得两个订单的OrderProfit()(这是金钱)和OrderLots()(这是手数)的数量。计算盈利和亏损的比例,关闭盈利的订单和这部分亏损的订单的批次。在获得订单的利润和手数之前,你必须首先选择OrderSelect。

// ticket1 тикет прибыльного ордера, ticket2 убыточного

bool sel1=OrderSelect(ticket1,SELECT_BY_TICKET,MODE_TRADES);
double profit1=OrderProfit();
double  Lts1=OrderLots();
double price1=0; if(OrderType()==0)price1=Bid; else price1=Ask;

bool sel2=OrderSelect(ticket2,SELECT_BY_TICKET,MODE_TRADES);
double profit2=OrderProfit();                     // profit1 < profit2 можно условием впереди поставить
double  Lts2=OrderLots();
double price2=0; if(OrderType()==0)price2=Bid; else price2=Ask;

double ratio=fabs(profit1/profit2); // или если ratio<1, и берем модуль, у нас один профит меньше нуля
double lotsl=Lts2*ratio;

 Alert("Попытка закрыть прибыльный ордер тикет1 ",ticket1,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
 bool    Ans1=OrderClose(ticket1,Lts1,price1,2);      // Закрытие прибыльного ордера
         if(Ans1==true) // Получилось :)
         Alert("Закрыт ордер тикет1 ",ticket1,". профит1 ",profit1); 
else Alert(" Ошибка при закрытии ордера  тикет1",ticket1," Код ошибки ",GetLastError());

Alert("Попытка закрыть часть ордера тикет2 ",ticket2,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
bool     Ans2=OrderClose(ticket2,lotsl,price2,2);      // Закрытие убыточного ордера частично
         if(Ans2==true) // Получилось :)
         Alert("Закрыт частично ордер тикет2 ",ticket2,". профит2 ",profit2); 
else Alert(" Ошибка при закрытии ордера  тикет2",ticket2," Код ошибки ",GetLastError());

 

  
 


Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
  • book.mql4.com
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
 
Vitaly Muzichenko #:

你能告诉我,我是否在kodobase的某个地方看到过以这种风格绘制的指标子窗口?

找不到了。


请参阅Scriptor 的指标

Scriptor
Scriptor
  • 2019.02.10
  • www.mql5.com
Профиль трейдера
 
Artyom Trishkin #:

请看脚本家的 指标。

谢谢,找到了,但有点不同,只在一行上。

 
Vitaly Muzichenko #:

谢谢,我找到了,但有点不同,它只针对一行。

我想也有好几行。

 
Artyom Trishkin #:

我想里面也有几行。

有超过1500个代码,我一定是错过了,很遗憾。

 
Vitaly Muzichenko #:

谢谢,我找到了,但有点不同,只在一行。

维塔利,你让我吃惊。所有这些指标都是基于用适当的代码构建DRAW_ARROW。在你的绘图中,方块是代码167

      ObjectSetInteger(0, up_arrow, OBJPROP_ARROWCODE, 167);    // установим код стрелки 

而该系列的水平设定为阿尔乔姆的猫或猫的愿望。它可以是整数,也可以是十分之一。

开始并询问什么是不成功的。

 
Vitaly Muzichenko #:

你能告诉我,我是否在kodobase的某个地方看到过以这种风格绘制的指标子窗口?

找不到它


DRAW_ARROW不是很好?

如果用一种颜色绘图,有8个缓冲区,如果用两种颜色,有16个缓冲区。

或DRAW_COLOR_LINE,线条较粗。

这种感觉是,线条总是在同一水平上(第一个1第二个2等等),只有颜色在变化。

 
Alexey Viktorov #:

维塔利,你让我吃惊。所有这些指标都是基于DRAW_ARROW绘图,并有相应的代码。在你的图片中,这些方块是代码 167

而行的水平是按照阿尔乔姆的猫或猫的愿望来设定的。它可以是整数,也可以是十分之一。

开始并询问什么是不成功的。

我不明白从底部缩进的原则,以便在几行中是相等的

这就是我无法开始的地方