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

 
trader781:

我不明白该把它放在哪里,为什么不放(-1)

有一个输入参数bool

空白的OnTick

{分析订单开仓,跟踪止损}。

无效的追踪止损

{对应于接近的条件

如果是,我们涵盖了所有的内容

}

事实上,返回;这是一个空白

我不知道你在那里有什么逻辑。你怎么能指望我猜到你那里有什么呢?
 
trader781:

三点

1个外部点,我们在这里设置是否要打开第二个或更多的订单

2)我们必须打开第一个订单的条件

3) 关闭订单点

我可以把代码发给你,但它对每个人都是一样的。

那么,如果你不需要帮助,为什么要在这条线上乱扔垃圾?

在一千个无用的页面中,你不会找到有用的信息

P.S. 还是你的目标是把你的帖子塞到最大?
 
trader781:
然后我要求提供这三点的开关图。那么如果你认为是垃圾,我就删除我的帖子。

这一点是什么?

1个外部点,我们在这里设置是否要打开第二个或更多的订单

2)我们必须打开第一个订单的条件

3)秩序点结束

你甚至知道你想要什么吗?

你不能在第2点设置订单,不能关闭它,只能删除它。总的来说,你的一切在逻辑上都是不连贯的、模糊的,你需要做一个副手。

 

有这部分代码。

if(ObjectFind(0,nm)<0) {
    ObjectCreate(0,nm,OBJ_TEXT,0,0,0);
    ObjectSetString(0,nm,OBJPROP_PRICE, TIME(0)+Period()*60*3); // сдвиг вправо на 3 свечи
}

问题:Period() 返回一个理智的值,最高为M30,来自H1的一组数字,标志物不能再以这种方式移动了。

如何通过N-烛台转移而不考虑周期?我不需要单独写一个函数,对吗?

 
Vitaly Muzichenko:

有这部分代码。

if(ObjectFind(0,nm)<0) {
    ObjectCreate(0,nm,OBJ_TEXT,0,0,0);
    ObjectSetString(0,nm,OBJPROP_PRICE, TIME(0)+Period()*60*3); // сдвиг вправо на 3 свечи
}

问题:Period() 返回一个理智的值,最高为M30,来自H1的一组数字,标志物不能再以这种方式移动了。

如何通过N-烛台转移而不考虑周期?我不需要单独写一个函数,对吗?

PeriodSeconds(PERIOD_CURRENT)*3
 
Artyom Trishkin:
PeriodSeconds(PERIOD_CURRENT)*3

谢谢你!

问题是:这个条目有多正确,它在程序的开头,而在整个程序中使用了大量的Time[0]和Time[1],而且不是每次都要调用,它被写在一个变量中。阵列 之外似乎没有错误,但一切都在表面上被定义。

datetime TM[], TIME0, TIME1;

//------------
void OnTimer()

ArraySetAsSeries(TM, true);
  if(CopyTime(_Symbol, PERIOD_CURRENT, 0, 2, TM)==-1) return;
   TIME0 = TM[0];
   TIME1 = TM[1];

谢谢!

 
Vitaly Muzichenko:

这一点是什么?

1个外部点,我们在这里设置是否要打开第二个或更多的订单

2)我们必须打开第一个订单的条件

3)秩序点结束

你甚至知道你想要什么吗?

你不能在第2点设置订单,不能关闭它,只能删除它。总的来说,你总是莫名其妙地在逻辑上不连贯和模糊,你需要做一个副手。

请。这里是外部的bool参数OpenOrders=false;//+---打开订单

我需要它打开订单,关闭它们,然后只是挂在图表上,不占用资源。

目前,它是自锯的(它是有效的,但对于面板元件来说是不可接受的)。

附加的文件:
 
trader781:

请。这里是外部的bool参数OpenOrders=false;//+---打开订单

我需要它打开一个订单,关闭它,然后就挂在图表上,不占用资源。

目前,它是自锯的(它是有效的,但对于面板元件来说是不可接受的)。

我也会这样做。在代码中添加 "已禁用"。

P.S. 将第72行改为 "if(! Disabled) return;"。我认为这面旗帜的逻辑很清楚。
附加的文件:
 
Vitaly Muzichenko:

我将做以下工作。在代码中添加 "已禁用"。

P.S. 将第72行改为 "if(! Disabled) return;"。我认为这面旗帜的逻辑很清楚。

不,这并不清楚。回到我们来的地方。

1) 禁用=true

初始化为true inite

传给ontik if(!Disabled) 返回。

打开 关闭

Disabled=false; exit.一切都很好。

2) 禁用=false

将ontik初始化为true

传递给ontic if(!Disabled) 返回。

打开 关闭

Disabled=false; exit.我在哪里打开下一个订单?一些变体应该允许这样做。

现在你明白我为什么让你描述一下逻辑了吗?

我也有一个2个EA的选择。

 
trader781:

不,我不明白。回到我们来的地方。

1) 禁用=true

在inite中初始化为真

传给ontik if(!Disabled) 返回。

打开 关闭

Disabled=false; exit.一切都很好。

2) 禁用=false

将ontik初始化为true

传递给ontic if(!Disabled) 返回。

打开 关闭

Disabled=false; exit.我在哪里打开下一个订单?一些变体应该允许这样做。

现在你明白我为什么让你描述一下逻辑了吗?

我也有一个2个EA的选择。

这一点并不清楚。如果你需要停止EA,那么建议的变体可以应对,如果没有必要停止它,那么就让它交易,不要以任何方式限制它。如果你想在止损后按需交易,只需切换时间,残疾将成为现实,程序将继续工作。