int hh; int CurrentHour; CurrentHour=TimeHour(TimeCurrent())。 如果(CurrentHour!=hh) { OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point)。 hh=TimeHour(TimeCurrent())。 }
int hh = 0; int init() { return(0); }int start() { //------------------------------------------------- int countorder; countorder=OrdersTotal(); if (countorder==0) { Alert ("no open orders"); }else { Alert ("have open orders"); } int hh; int CurrentHour; CurrentHour=TimeHour(TimeCurrent() ) ; if ((CurrentHour! =h)&&(countorder==0) ){ OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point); hh=TimeHour(TimeCurrent() ); }//------------------------------------------------- return(0); }int deinit() { return(0); }
我按你说的做了,没有效果,增加了未平仓订单的数量,现在收盘后立即开仓。
我通过OrderCloseTime()解决了这个问题--现在似乎可以了。
int countorder; countorder=OrdersTotal(); if (countorder==0) { Alert ("no open orders"); }else { Alert ("have open orders"); } int hh; int CurrentHour; int LastOrderCloseTime; CurrentHour=TimeHour(TimeCurrent() ) 。
demlin:
Еще вопрос: какой функцией можно вытащить стоимость одного пункта инструмента?
https://docs.mql4.com/ru/constants/marketinfo
MarketInfo(Symbol(), MODE_TICKVALUE);
请告诉我应该在EA中写哪些代码来使EA每小时只交易一次。
例如,EA已经触发,一个订单被打开(对进一步感兴趣),我希望该订单不要在一小时时间框架的当前条上打开。
这一切看起来都一样。
int hh;
int CurrentHour;
CurrentHour=TimeHour(TimeCurrent())。
如果(CurrentHour!=hh)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point)。
hh=TimeHour(TimeCurrent())。
}
但我有无数的订单未完成
大家好!
请告诉我这是什么意思。
订单买入 ...... 失败 [交易超时]
我特别感兴趣的是它是什么类型的超时。
https://www.mql5.com/ru/forum/112612
这是一个过期的服务器响应 --- 无论交易是否打开。而且也不能保证交易没有开启。
因此,我必须在一分钟内检查订单是否被打开,然后继续交易。
rlx。
需要在start()和init()
之前设置。
int hh = 0; int init() { return(0); }int start() { //------------------------------------------------- int countorder; countorder=OrdersTotal(); if (countorder==0) { Alert ("no open orders"); }else { Alert ("have open orders"); } int hh; int CurrentHour; CurrentHour=TimeHour(TimeCurrent() ) ; if ((CurrentHour! =h)&&(countorder==0) ){ OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point); hh=TimeHour(TimeCurrent() ); }//------------------------------------------------- return(0); }int deinit() { return(0); }
我按你说的做了,没有效果,增加了未平仓订单的数量,现在收盘后立即开仓。
我通过OrderCloseTime()解决了这个问题--现在似乎可以了。
int countorder;
countorder=OrdersTotal();
if (countorder==0)
{
Alert ("no open orders");
}else
{
Alert ("have open orders");
}
int hh;
int CurrentHour;
int LastOrderCloseTime;
CurrentHour=TimeHour(TimeCurrent() ) 。
OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY); hh=TimeHour(OrderCloseTime() )。
如果((CurrentHour!=hh)&&(countorder==0)){ OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point) ; }
https://www.mql5.com/ru/forum/112612
这是服务器响应的等待期------交易是否已经开启。而且不能保证交易没有开启。
因此,按照开发者的建议,在一分钟后检查是否有订单开启,然后才继续。
然而,我不想成为一个麻烦的人。
向我解释一下,如果OrderTotal()为零,订单将如何打开。
谢谢你。
下面是带括号的图,它限制了在条件下执行的代码块
OrderSend() 操作 不受此条件影响。
如何获得一个酒吧号码,在 "未来" :)
iBarShift() 从历史记录中获取条数的工作很好,但是如果你将线向右移动--超过零条,你如何获取这段代码的条数?
如何获得一个酒吧号码,在 "未来" :)
iBarShift()对于从历史记录中获取条形数字来说,工作得很好,但是如果我把线向右移动--超过零条,我怎样才能获得这段代码的条形数字?
你可以得到一个相对于Time[0]的偏移量
你可以得到一个相对于Time[0]的偏移量
谢谢你!现在一切都好了!