[英]placing an Order everyday automatically by an expert
我写了一个 mql4 的专家。我想每天在每天开盘时下订单(BuyStop Order)。 我写了以下代码,但专家不工作。请帮助我
// y means yesterday
double yHigh=iHigh(Symbol(),PERIOD_D1,1);
double yLow=iLow(Symbol(),PERIOD_D1,1);
double yOpen=iOpen(Symbol(),PERIOD_D1,1);
double yClose=iClose(Symbol(),PERIOD_D1,1);
double yRange=yHigh-yLow;
double P=NormalizeDouble(((yHigh+yLow+yClose)/3),5);
double R3=NormalizeDouble((P+yRange*1.000),5) ;
double R2=NormalizeDouble((P+yRange*0.618),5) ;
double R1=NormalizeDouble((P+yRange*0.382),5) ;
double S1=NormalizeDouble((P-yRange*0.382),5) ;
double S2=NormalizeDouble((P-yRange*0.618),5) ;
double S3=NormalizeDouble((P-yRange*1.000),5) ;
void OnTick()
{
if (iVolume(Symbol(),PERIOD_D1,0)<=1)
int buyTicket=OrderSend(Symbol(),OP_BUYSTOP,0.01,P,3,S1,R1,"MyBuyPosition",7777,0,clrGreen);
{
// P and R1 and S1 are pivot points and calculated at the top
这位专家每天计算 Pivot 点,并在新的一天恰好开始时下止损订单。(恰好在每日蜡烛开始时)
为什么这个 Expert 不起作用? :(
我尝试了越来越多。但它不起作用。我认为下面一行有问题:
if (iVolume(Symbol(),PERIOD_D1,0)<=1)
有没有其他方式来显示开始新的一天而不是这个代码行?
使用iVolume
来确定新的一天是非常不可靠的。 而是简单地使用iTime
。 尝试以下操作:
datetime currentDay;
void OnTick()
{
if(currentDay!=iTime(NULL, PERIOD_D1,0))
{
int buyTicket=OrderSend(Symbol(),OP_BUYSTOP,0.01,P,3,S1,R1,"MyBuyPosition",7777,0,clrGreen);
currentDay=iTime(NULL, PERIOD_D1, 0);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.