[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 24

 

它已经在运行了。它在很长一段时间内都没有预测到开放信号,空气是由同一个计时器提供的。

简而言之,保罗死了。

 
谁能提供建议:这是一个微不足道的问题 ,但我似乎整天都解决不了这个问题。如何使EA在蜡烛开盘时开盘,如果在同一根蜡烛上收盘,在新的蜡烛出现之前不开盘。这里的问题是,当信号打开时,假设订单在同一蜡烛图上被关闭,那么信号是有效的,但它不再有意义,因为机器人是为开盘价 写的。我记得有一个方法,但我记不起来了。
 

该旗帜被称为。

当订单打开时,指定OrderIsOpened=true。当一个新的蜡烛 打开 - ...=false,以此类推。

 
tara:

该旗帜被称为。

当订单打开时,指定OrderIsOpened=true。当一个新的蜡烛打开 - ...=false,以此类推。

谢谢你。那么如何对新的蜡烛的 开启进行编码呢?
 
kwadrad:
谢谢你。那么如何对新的蜡烛的开启进行编码呢?


无论你喜欢什么--这一切都在你手中。比如说。

- 当时间按TF大小变化时(最容易)。

- 当 "新"的公开价格 与 "旧 "的价格不同时

由相同的 "旗帜 "技术。

不客气。

 
kwadrad:
谢谢你。那么你是如何为新蜡烛的开启编码的呢?
用搜索引擎进行探索
 
Fartarantula:

你好,亲爱的mql人。我的第一个代码问题来了。

它是一个趋势指标。该任务是一个趋势指标,其坐标是第1条线=上一天和前一天的最大值,第2条线=上一天和前一天的最小值。

这将是确定的,但当你切换到较低的时间框架时,坐标是紧紧抓住一天的开始,虽然在相应的价格水平....而这句话的意义就完全丧失了。

当创建一个趋势线对象时,数据时间 参数要受到责备。我想不出怎么去找它。有必要计算出价格极值的形成时间。看来,这些信息

似乎这些信息被嵌入到1分钟的时间框架中,我在这里遇到了困难。如何确定时间框架变化时的日期时间,以便重新绘制趋势,并将坐标附加到与极值对应的条形上。

不幸的是,在搜索中没有发现任何关于这个问题的信息。如果能得到建议,我将不胜感激。

我明白,编写代码的程序本身就会造成困难。

我为你提供以下解决这一任务的方法。

// Ваша трендовая по High на дневном таймфрейме
datetime Time1 = iTime(Symbol(), PERIOD_D1, 1);
double   High1 = iHigh(Symbol(), PERIOD_D1, 1);
datetime Time2 = iTime(Symbol(), PERIOD_D1, 2);
double   High2 = iHigh(Symbol(), PERIOD_D1, 2);
ObjectCreate("High_Trend", OBJ_TREND, 0, Time2, High2, Time1, High1, 0, 0);

// Ищем точное время High'ев на таймфрейме PERIOD
int PERIOD = PERIOD_M5;

int BarTime1 = iBarShift(Symbol(), PERIOD, Time1);
int BarTime2 = iBarShift(Symbol(), PERIOD, Time2);
Time1 = iTime(Symbol(), PERIOD, 
      Highest(Symbol(), PERIOD, MODE_HIGH, BarTime1, 1));
Time2 = iTime(Symbol(), PERIOD, 
      Highest(Symbol(), PERIOD, MODE_HIGH, BarTime2, BarTime1+1));

ObjectSet("High_Trend", OBJPROP_TIME2, Time1);
ObjectSet("High_Trend", OBJPROP_TIME1, Time2);

唯一的问题是,如果你在策略测试器中用这段代码启动专家顾问,并将PERIOD变量设置为PERIOD_M1,两个iBarShift函数 都返回-1,即函数无法在历史上找到TF M1上有相同时间的条... 我不知道为什么会发生这种情况。

我发现了原因!在 测试期间,没有M1条的历史记录。

 
alex12:

我需要通过MA来查看该工具整个历史上的价格行为,但在图表中插入该指标时却没有绘制。

问题是什么?

当编译=0和0时。

顺便说一句--MT4终端挂掉了!

将History和Aver_Bars输入参数设置为一个较小的值,终端将停止 "挂起"。

是什么让你认为指标在连接到图表时没有被画出来?当我把你的指标放在今天的欧元/美元TF M1的图表上时,这就是你的指标所画的。


:D :D :D

 
artmedia70:
当这个错误发生时(除以0),专家顾问停止工作。寻找代码中出现除以0的地方--很可能是在计算某些参数时得到了0。
谢谢你,我已经明白了。我将在周末检查。
 

你好,亲爱的论坛成员。

当然,我有一些来自新人的问题。我正在努力学习mql4,因为我以前从未开发过任何程序,所以问题可能很原始。但我从来没有自己做过这些事。

我决定通过画线而不是柱状图的方式对成交量的显示 进行一些处理,来 "捣乱"。代码应具有以下意义。从与前一个柱子方向相同的第二个柱子开始(两个柱子都是向上的),成交量从第二个柱子开始绘制。结果,我在指标窗口中得到了一条断线,它确实是从第二根柱子往上画的,但由于某些原因并不是在所有情况下都是如此。这条线被打断了,因为它绘制的其他条件根本没有确定,它是一个未来的东西。但在这里我自己要理解为什么线不是在每第二个柱状物上画的,我不能。请帮助我。

以下是代码。如果你对代码中的其他错误有任何其他意见,我很乐意帮助你。

double dVolume=Volume[i];
double vback1=Volume[i+1];

         {
         double vteor12=(dVolume+vback1)/2;
            if (Close[i+1]>Open[i+1] && Close[i]>Open[i]) double UP12=(Close[i]-Open[i+1])*1000; else UP12=0;
            if (UP12!=0) double vrealUP12=(dVolume+vback1)/UP12; else vrealUP12=0;
            if (Close[i+1]>Open[i+1])
            if (Close[i]>Open[i])
            ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
            if (ExtVolumesBuffer[i]<0) ExtVolumesBuffer[i]=0;
              }