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

 

谁能建议一下,在MT-4中安装GetTickerHistory插件,运行了,但下载不了,在Windows 7 x64上,是否可以用其他方式下载外部索引。

提前感谢。

 
001:
有一个按时间平仓的功能。

仓位关闭,但每个仓位都会出现OrderClose错误138

11:44:49 2000.01.10 07:00 Time+iLowest_old EURUSD,H1: open #1 sell 0.10 EURUSD at 1.02940 ok
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000。01.10 14:00 Time+iLowest_old EURUSD,H1: close #1 sell 0.10 EURUSD at 1.02940 at price 1.02230
11:44:49 2000.01.11 07:00 Time+iLowest_old EURUSD,H1: open #2 sell 0.10 EURUSD at 1.02660 ok
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: close #2 sell 0。10 EURUSD at 1.02660 at price 1.02890
11:44:49 2000.01.13 07:00 Time+iLowest_old EURUSD,H1: open #3 sell 0.10 EURUSD at 1.02860 ok

11:44:49 2000.01.13 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138 ,

它可能是什么?最有趣的是,一切都在另一个EA中运作。

你没有处理贸易服务器的返回代码。换句话说,你不处理重新报价,滑点只差3个点。

int f=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,Red);

哦,还有这些小事。

以反向循环方式关闭(否则会错过)。

for(int i=OrdersTotal()-1; i>=0; i--)

应该对订单类型进行检查,否则它也会尝试关闭挂单。

if(OrderType()>1) continue;
 
pu6ka:

有一个叫SetIndexDrawBegin()的函数。但它有一个特殊的功能--从左到右计数。总之,在Init中,自己设置行SetIndexDrawBegin(0, Bars-p),看看这是否是你需要的。
指示器读取最后的条数,它没有问题。我需要做一个计算这些运动的条数的窗口,每一个条数的窗口都会移动,排除上次计算中的最后一个条数,增加一个新的条数。类似于 "iMAOnArray "的平滑,但平滑并不适合,因为它输出的是平均值,而我需要的是总和。
 
artmedia70:

你对贸易服务器的返回代码没有处理。也就是说,你没有处理重新报价,而仅仅是3个点的滑坡就不见了。

哦,还有这些小事。

以反向循环方式关闭(否则会错过)。

应该对订单类型进行检查,否则它也会尝试关闭挂单。



非常感谢您!我现在就去试试。还有一个问题。在测试器中的重新投票 有关系吗? 在我的测试器中,它没有关闭。
 
001:

非常感谢您!我现在要试一试。还有一个问题。测试器中的 requota 是否相关?在我的测试器中它没有关闭。
然后注意交易订单 中的价格。它将以买入价关闭,以卖出价出售。你没有检查订单类型,因此,你没有选择价格--卖出或买入。
 

你好!我已经下载了几个几乎相同的多时间框架RSI指标。他们都有同样的问题。我在一个 较低的时间框架图上 设置了指标,其数值是一些较早的时间框架。在策略测试器中,它在已经加载的数据上呈现得很好,但如果我开始测试,它就会停止绘制。此外,信号是在真实图表上绘制的,但在真实图表的每个条形上,指标线的数值是不同的。也就是说,已经加载的数据的渲染是阶梯式的,但在实时模式下,加载的数据的渲染是不同的。请告知需要做哪些修改才能使该指标在实时模式下的真实图表和测试器中画出相同的楼梯。

该指标的代码在所附文件中。

我有一个非常好的专家顾问来处理这个指标,我想感谢你。

附加的文件:
mtf_rsi.mq4  3 kb
 
你好,EA在修改时出现错误1 "没有错误,但不知道结果"。错误1
void ControlBuylimit(){
  for(int i=OrdersTotal(); i>=0; i--){
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
      if(OrderMagicNumber()==Magic){
        if(OrderSymbol()==Symbol()){
          if(OrderType()==OP_BUYLIMIT){
            if(OrderComment()=="MA_1"){
              if(OrderOpenPrice()!=ma1){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma1,Digits),NormalizeDouble(ma1,Digits)-StopLoss*Point,NormalizeDouble(ma1,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
            if(OrderComment()=="MA_2"){
              if(OrderOpenPrice()!=ma2){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma2,Digits),NormalizeDouble(ma2,Digits)-StopLoss*Point,NormalizeDouble(ma2,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
          }
        }
      }
      
    }
  }
}
 
Forexman77:
让指标读取最后的条数是没有问题的。我需要做一个条数的窗口,在其中计算这些运动,每一个条数的窗口都会移动,排除上次计算的最后一个条数,增加一个新条数。类似于 "iMAOnArray "的平滑,但平滑并不适合,因为它输出的是平均值,而我需要的是总和。

把这个指标扔在M1上,随着新条形 的出现,左边的鳄鱼线 "被消灭 "了。需要它吗?

附加的文件:
 
Example2:
你好,EA在修改时出现错误1 "没有错误,但不知道结果"。

最有可能的是,你正在用订单中已经规定的旧价格进行修改。
 
pu6ka:

最有可能的是修改权证中已经规定的旧价格。


但有一个检查,如果(OrderOpenPrice()!=ma2)