[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 370

 
Bion >> :

我已经按照你的建议做了。

你应该使用LastTime这个数据时间。
datetime Pause=3600。

int start()
{
如果(TimeCurrent()<LastTime+Pause)返回(0)。

...

bool cl() {if(OrderSelect(0,SELECT_BY_POS)==true){ int t=OrderType();
double l=OrderLots()。
int tik=OrderTicket();Alert("tik=", tik);
}
如果(t==OP_BUY) OrderClose(tik,l,Bid,3,Red)。
如果(t==OP_SELL) OrderClose(tik,l,Ask,3,Green)。
LastTime=TimeCurrent()。
}

但在策略测试器中,订单按照条件打开,但它对时间没有反应。

此外,测试人员对参数 "待定订单的存在时间 "没有反应,也就是说,在该删除的时候,它没有被删除。

它应该是这样的吗?

我们怎样才能使测试人员考虑到订单关闭后的时间?


其次,在一些晦涩难懂的函数中给全局变量赋值不是很好,有两条出路,要么通过引用,要么在函数返回布尔类型的值时给全局变量赋值,当然,如果也是变量,就会引起警惕,但这是你的业务 ....但这只是一个说法)))。从你的代码中不清楚什么时候调用这个函数,以及它是否被调用。试着检查一下日志文件中的结果,你就会明白。
 

这是完整的代码,我删除了所有的函数,按规定声明了变量,但结果是一样的--在测试模式下,它对时间没有反应,它在同一个柱子上放置额外的订单。

它需要什么?


double q0=0; double q1=0; double q2=0; double q3=0; datetime LastTime; datetime Pause=3600; int typ, tik; double l。






int start()
{

datetime t=Hour();

if (t==8) {q0=0; q1=0; q2=0; q3=0; }

if (t>=9) {

int i0=0;
while (q0==0) { q0=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise, Red,Gold, Silver,0,i0); i0++; }

int i1=0;
while (q1==0) { q1=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise, Red, Gold, Silver,1,i1); i1++; }

int i2=0;
while (q2==0) { q2=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise, Red, Gold, Silver,2,i2); i2++; }

int i3=0;
while (q3==0) { q3=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise, Red, Gold, Silver,3,i3); i3++; }


Comment("g0=",q0, "\n", "g1=",q1, "\n", "g2=",q2, "\n", "g3=", q3 ); }

double os0=iOsMA(NULL,0,5,26,9,4,0);

double os1=iOsMA(NULL,0,5,26,9,4,1)。

// 从这里看到


if(TimeCurrent()<(LastTime+Pause))return(0); if (

OrdersTotal()==0) { if (Bid>q0 && t>=9 && t<=20 && os1>0) OrderSend(Symbol(),OP_BUY,0。1,Ask,3,(Bid-30*Point),0,"__",555,0,Red );

if (Ask<q1 && t>=9 && t<=20 && os1<0) OrderSend(Symbol(),OP_SELL,0.1,Bid,3,(Ask+30*Point),0,"__",444,0,Green) ;}

如果(OrdersTotal()==1) {OrderSelect(0,SELECT_BY_POS);
typ=OrderType();
tik=OrderTicket();
l=OrderLots();
if (typ==OP_BUY && os1<0) { LastTime=TimeCurrent(); OrderClose(tik,l,Bid,3,Red); }
if (typ==OP_SELL && os1>0) { LastTime=TimeCurrent(); OrderClose(tik,l,Ask,3,Green);}

}

return(0);
}
//+------------------------------------------------------------------+

 

你好。

向专家提问

情况如下:专家顾问挂在模拟账户上,报价通过,价格变化,但专家顾问在一段时间后停止了交易,日志中产生了一个错误。


2009/12/30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:08 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:12 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:13 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格

货币对 - USDCAD


开始于2009.12.30 16:46:06,停止于

2009.12.30 17:29:58 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=128。交易的等待时间已过

同意43分钟是很重要的,更糟糕的是它扰乱了Ekspert的算法。

更有趣的是,当我试图发送OP_BUYSTOP订单时,出现了错误:-0(挂单可以有什么样的报价?)


136没有价格=关闭报价。


如果屏幕上的价格不断变化,为什么没有价格?


这个问题已经由一位受人尊敬的黄金交易商在这里提出https://www.mql5.com/ru/forum/105903/page2,但还没有正式解决(我希望这个问题不是一种我们不想在明面上讨论的TABO。)


我想知道 "为什么会这样 "以及 "如何防止或处理这种错误"。


我希望这不是人们不愿意公开讨论的TABOO)。 提前感谢您的答复。

 
AndBar >> :

你好。

向专家提问 -

情况如下:模拟账户上的专家顾问,报价通过,价格变化,但专家顾问停止交易一段时间,日志中产生错误。


2009.12.30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=136。没有价格
2009.12.30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:08 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:12 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格
2009.12.30 16:46:13 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码 = 136。没有价格

货币对 - USDCAD


错误开始于2009.12.30 16:46:06,停止于

2009.12.30 17:29:58 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- 错误代码=128。交易的等待时间已过

你应该同意,43分钟是一个相当长的时间;更糟糕的是,它破坏了专家的算法。

更有趣的是,当我试图发送OP_BUYSTOP订单时,出现了错误:-0(挂单有什么样的报价?)


136没有价格=关闭报价。


如果屏幕上的价格是不断变化的,为什么没有价格?


这个问题已经由一位受人尊敬的黄金交易商在这里提出https://www.mql5.com/ru/forum/105903/page2,但还没有正式解决(我希望这不是一种TABU问题,你不想在明面上讨论)


我想知道 "为什么 "和 "如何防止或处理这种错误"。

什么是平台的修订?

关于不同的数据流,已经讨论过不止一次了。对于自动交易,流量已经关闭。显然是这样。

 
AndBar писал(а)>>

136没有价格=关闭报价。

这往往发生在新闻出来之前。你无能为力,除非你提前下单,尽可能把它拉到价格后面。43分钟太长了。

 
Bion писал(а)>>

这是完整的代码,删除了所有的函数,根据需要声明了变量,但结果是一样的--在测试模式下,它对时间没有反应,在同一个栏上做了额外的订单。

这个问题是关于收盘 后的停顿。收盘后会有一个停顿。

-

在一个酒吧里有几个开口。在开盘后,你应该记住条形图的时间,在开盘前,你应该检查条形图的时间是否与上次开盘的时间相等。最好使用GlobalVariable来记住这个时间。

-

在所有的同时,添加 while (q0==0 &&i<Bars)将是一个好主意。

-

LastTime=TimeCurrent(); - 最好是在检查订单是否真的关闭后再做:如果(OrderClose(..))LastTime=TimeCurrent()。

 
Integer писал(а)>>

问题是关于关门 后的停顿。关闭后会有一个停顿。

-

在同一个酒吧里有多个开口。打开后,你应该记住酒吧时间,并在打开前检查酒吧时间是否等于最后一次打开的时间。最好使用GlobalVariable来记住这个时间。

-

在所有的同时,添加 while (q0==0 &&i<Bars)将是一个好主意。

-

LastTime=TimeCurrent(); - 最好是在检查订单是否真的关闭后再做:如果(OrderClose(..))LastTime=TimeCurrent()。

从教程中可以看出,GV变量只能有双倍类型,那么我们应该怎样把秒数放在那里呢?

我已经检查了一个订单是否已经关闭,但仍然失败,我们仍然得到一个错误。


如果(Time[0]<(LastTime+Pause)),返回(0)。

if ((OrdersTotal()==0) { if (Bid>q0 && t>=9 && t<=20 && os1>0) OrderSend(Symbol(),OP_BUY,0.1,Ask,3,(Bid-30*Point),0,"__",555,0,Red ) 。

if (Ask<q1 && t>=9 && t<=20 && os1<0) OrderSend(Symbol(),OP_SELL,0.1,Bid,3,(Ask+30*Point),0,"__",444,0,Green) ;}

如果(OrdersTotal()==1) {OrderSelect(0,SELECT_BY_POS;)
typ=OrderType()。
tik=OrderTicket()。
l=OrderLots()。
如果(typ==OP_BUY && os1<0) 如果(OrderClose(tik,l,Bid,3,Red))LastTime=Time[0];
如果(typ==OP_SELL &&os1>0) 如果(OrderClose(tik,l,Ask,3,Green))LastTime=Time[0];
}

你能不能给我们一个例子或链接,说明在前一个订单之后,将下一个订单的开启时间推迟一小时的任务已经成功实施了?

 
Bion писал(а)>>

从教科书上看,GV变量的类型只能是double,那么你怎么把秒数放进去?

啊哈,那就忘掉一切,过一个快乐的新年吧!

祝大家新年快乐!

 
正在用一个指标工作,一切正常,然后当我切换时间段时,终端开始挂起,我重新安装了windup,它仍然挂起。为什么(((((((((((((
 
Fosfalugel писал(а)>>
我正在使用一个指标,一切正常,然后当我切换时间框架时,终端开始冻结,我重新安装了Windows,它仍然冻结。为什么(((((((((((((

指示灯可能应该被扔掉。或者问问圣诞神父。今天是新年前夕。

原因: