任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 709

 

大家好!帮我找到代码中的一个错误。重点如下:全部开仓,比方说6个,4个获利,2个买入(根据截图)。收盘是当总利润达到1.0时(根据截图)。2 X 2 = 4个锁定(它们使用OrderCloseBy关闭),2个卖出使用OrderClose关闭。

错误如下:使用OrderCloseBy关闭了重叠的订单,但其余的订单根本没有被关闭。

我不想在代码中挖掘,我认为错误在这里。

代码的第565行 - 关闭订单的功能

代码行92-100 - 关闭所有其他订单

代码的第550行 - 计算未结订单的函数

我将感谢任何帮助。


附加的文件:
 

alexey1979621, на mql5 ответил ;)

 
Shurkin:

你好。

当镶嵌时(终端MT-4-670,Alt+R),图表窗口每次都被放置在新的地方。

请告知是否有可能将它们固定下来,使每个特定图表在屏幕上的位置不变?


MT-4-670,对我来说一切都很好

成对的图表总是位于(马赛克),因为它们位于底部的标签中

按优先顺序排列。

| 1 | 3 | 5 |

| 2 | 4 | 6 |

 
GalaX:

MT-4-670,我很好

成对的图形总是按照标签底部的方式排列(以马赛克的方式)。

按优先顺序排列。

| 1 | 3 | 5 |

| 2 | 4 | 6 |


我总是先让全屏的窗口,改变活动窗口--马赛克的顺序也会改变
 
GalaX:

MT-4-670,我很好

成对的图形总是按照标签底部的方式排列(以马赛克的方式)。

按优先顺序排列。

| 1 | 3 | 5 |

| 2 | 4 | 6 |


该属性在图表栏开启时出现,关闭时则消失,活动窗口被放在首位。

在最新版本的帮助中,我找不到任何有关这方面的内容。

 
alexey1979621:

大家好!帮我找到代码中的一个错误。重点如下:总共开了6个,比方说其中4个获利,2个买入(根据截图)。当总的利润,与Cajem在1.0(根据截图)时,就会进行关闭。2 X 2 = 4个锁定(他们使用OrderCloseBy关闭),2个密封使用OrderClose关闭。

这里的错误如下:使用OrderCloseBy关闭了重叠的订单,但其余的订单根本没有被关闭。

为了避免在代码中挖掘,我认为错误在这里。

代码的第565行 - 关闭订单的功能

代码的第92-100行 - 关闭所有其他订单

代码的第550行 - 计算未结订单的函数

我将感谢任何帮助。


"代码的第92-100行--关闭所有其他订单"--订单的收盘价是错误的。

在所有带有搜索订单的循环中,你需要改变订单的搜索方向,例如,以下列方式进行搜索

 for(t = OrdersTotal() - 1; t >= 0; t--)

而在ClosePos()中,穿越后的订单量有很大变化。那里一定有很多错误。

 

程序化访问警报--那些在右侧画有红色箭头的警报,当价格越过所需水平时,将信息发送到应该发送的地方,存在???????。

Ayyyyyy

 

第三天!!!!

int stohastm1()

{


double z=iLowest(Symbol(),PERIOD_M1,MODE_LOW,m5,0); //返回n个周期的最小价格的条形指数。

double x=iHighest(Symbol(),PERIOD_M1,MODE_HIGH,m5,0); //返回最大价格的n个周期的条形索引。

double MinLOWPeriod=iLow(Symbol(),PERIOD_M1,z); //返回最低价格的条形价格值。

double MaxHIGHPeriod=iHigh(Symbol(),PERIOD_M1,x); //返回最高价格的柱子的价格。

double PriceCloseBar=iClose(Symbol(),PERIOD_M1,0); //返回最后一个柱子的收盘价。

double i=100*((PriceCloseBar*10000)-(MinLOWPeriod*10000));

double r=100*((MaxHIGHPeriod*10000)-(MinLOWPeriod*10000));

双Km1=(i/r)。


返回(Km1)。

在实时情况下,该脚本是有效的!!!在策略测试器中,ERROR!除以零!!!这个公式是最简单的,但没有除法你就做不到。(随机公式)。从代码中可以看出,而且我将数值乘以10000,以普遍排除零!仍然是一个错误。求你了!!!。

 
sponger:

第三天!!!!

int stohastm1()

{


double z=iLowest(Symbol(),PERIOD_M1,MODE_LOW,m5,0); //返回n个周期的最小价格的柱状指数

double x=iHighest(Symbol(),PERIOD_M1,MODE_HIGH,m5,0); //返回最大价格的n个周期的条形索引。

double MinLOWPeriod=iLow(Symbol(),PERIOD_M1,z); //返回最低价格的条形价格值。

double MaxHIGHPeriod=iHigh(Symbol(),PERIOD_M1,x); //返回最高价格的柱子的价格。

double PriceCloseBar=iClose(Symbol(),PERIOD_M1,0); //返回最后一个柱子的收盘价。

double i=100*((PriceCloseBar*10000)-(MinLOWPeriod*10000));

double r=100*((MaxHIGHPeriod*10000)-(MinLOWPeriod*10000));

双Km1=(i/r)


返回(Km1)。

在实时情况下,该脚本是有效的!!!在策略测试器中,ERROR!除以零!!!这个公式是最简单的,但没有除法,就没有办法做到。(随机公式)。从代码中可以看出,而且我将数值乘以10000,以普遍排除零!仍然是一个错误。求你了!!!。

这不是一个除法吗?双Km1=(i/r)
 

borilunad:
А это не деление? double Km1=(i/r);   

它是!!!但你需要它!!随机公式%K=100%-((收盘价-最小值)/(Maxp-最小值))

  • 收盘价--当前收盘价
  • Maxp--期间的最大值n
  • 我怎样才能做到不用除法呢?