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

 
Vitaly Muzichenko:
你已经有了一个特定的价格,从这个价格开始,你应该只使用简单拖网的类似方法进行拖网,但简单拖网是基于开仓 价格=OrderOpenPrice(),而这里是基于计算出的平均价格,并将所有头寸修改一个级别。

是的,我知道了。

我正在看我之前发布的代码,它在测试器中给我一个这样的图片

这是一个功能,我想切断这些槽的尺寸,因为其中一个槽上有一个排水口。

作为前一个例子--

我现在手上有很多关于美元兑日元增长的短线,我只想在这里补充一下保险的功能(如果损失达到余额的某个百分比--关闭所有)。
附加的文件:
TesterGraph.gif  19 kb
 
vitek2010:

我说的不是ticks,我说的是需要固定在较小的时间框架上计算的指标缓冲区的最小和最大读数,在较大的时间框架的间隙,我将尝试在截图上显示 在这种情况下,采取较大的时间框架,小H1(但这是不同时间框架的窗口)。

[img]https://charts.mql5.com/13/642/eurgbp-w1-instaforex-group.png[/img]

我将考虑05.12这一周(红色十字线),上图所示的指标的这个条形图清楚地显示,周末的货币对总的运动是下降了95点,但它没有显示在这一周内有多少点是下降或上升的。

在这个屏幕上,你可以看到本周H1图表上这个指标 的动态。

[img]https://charts.mql5.com/13/642/eurgbp-h1-instaforex-group.png[/img]

指标的最小值是400,然后上升到700,并在160上收盘(两个屏幕上的数字差异并不重要)。

我需要在一个指标中的一个柱状图中的所有这些值,以及最小、最大和收盘(在这种情况下,在维基上)。最好是在你在时间框架的设置中指定的当前时间框架上。

我在mt4 insta上用mcl5的拷贝做的。

在你上面展示的代码中,引用的是当前的TF,那么我们在谈论什么?如果你要从W1进入M5,那么就这样写吧。

如果你在当前的时间框架下工作,那么收盘价在零条上是浮动的,而在其余的时间里--只有一个收盘价,没有很多,我如何在一个值上建立直方图?

图片是使用信息编辑窗口顶部的适当按钮插入的,那里有很多有用的按钮,我建议你学习。

 
trader781:

是的,我知道了。

我正在看我之前发布的代码,它在测试器中给我一个这样的图片

这就是我想削减这些槽的尺寸的功能,因为其中一个槽上最终会有一个排水口。

作为前一个例子--

在日元兑美元上涨时开了空头,我想为它投保(如果损失将达到余额的百分比--关闭一切)。
我想使用 "撞击 "功能(如果损失达到余额的某个百分比)。而TC的条款要细化,如果暴跌--那么投入就不存在,也不存在。
 
Vitalie Postolache:
你必须减少 "撞 "的次数,否则就放弃马汀格尔。并细化TS的条款,如果你输了--那么投入就不存在,也不存在。

谢谢你的建议,但我只想让代码以我想要的方式工作,这与盈利能力/利润率无关。我只是想看看这些功能是什么样子的。

嗯,我在之前的代码中遇到了一个表达式(_BuyLot>_SellLot?)买入卖出)

我应该如何解释它?

 
trader781:

谢谢你的建议,但我只想让代码以我想要的方式工作,这与盈利能力/利润率无关。我只是想看看这些功能是什么样子的。

嗯,我在之前的代码中遇到了一个表达式(_BuyLot>_SellLot?)买入卖出)

我应该如何解释它?

在此阅读 https://docs.mql4.com/ru/basis/operators/ternary
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
  • docs.mql4.com
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
 
trader781:

谢谢你的建议,但我只想让代码以我想要的方式工作,这与盈利能力/利润率无关。我只是想看看这些功能是什么样子的。

嗯,我在之前的代码中遇到了一个表达式(_BuyLot>_SellLot?)买入卖出)

我应该如何解释它?

笔录中是这样写的。前面的条目更短,在代码中往往看起来更漂亮,但代码执行的感觉并没有改变

if(_BuyLot > _SellLot) {
 xxx = Bid;
 } else {
 xxx = Ask;
}
 
Vitaly Muzichenko:

笔录中是这样写的。前面的条目更短,很多时候在代码中看起来更漂亮,但它并没有改变代码执行的感觉

if(_BuyLot > _SellLot) {
 xxx = Bid;
 } else {
 xxx = Ask;
}

其中xxx =_BuyLot

否则

xxx =_SellLot

对吗?


阿列克谢-维克多罗夫
在此阅读 https://docs.mql4.com/ru/basis/operators/ternary
我有一段用简单语言编写的不起眼的代码,但你仍然很难从我的角度看出来它说了什么。这是一个由生成器编写的简单算法。
 
trader781:

其中xxx =_BuyLot

否则

xxx =_SellLot

对吗?

不,不是的。

if(_BuyLot-_SellLot != 0) {
  if(_BuyLot > _SellLot) {
   AllAwerage= NormalizeDouble(Bid-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits);
  } else {
   AllAwerage= NormalizeDouble(Ask-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits);
  }
} else {
  AllAwerage=0;
}

但那是很多行的代码

 
trader781:

其中xxx =_BuyLot

否则

xxx =_SellLot

对吗?


我有一段用简单语言写的不起眼的代码,尽管如此,从我的角度看,你几乎看不出那里写的是什么。一个由生成器编写的简单算法。

错了。陷阱操作符为变量赋值,而不是为被比较的表达式赋值。

double price=(_BuyLot>_SellLot?)买入卖出)。

而现在是我们理解算法的时候了,包括生成的和手写的算法。虽然有时手写比弄清楚别人在那里拧的东西更容易。

 
Vitalie Postolache:


而且,无论是生成的还是手写的,这些算法现在都应该被拆除了。

嗯,我还没有使用类、数组、宏和从Windows库导入。所有的时间都很充裕。
原因: