低和高 - 页 2

 

i要走多远?什么是Bars-1数?

 
如果(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
HighValue=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 15.00-17.00之间的8个M15条。
LowValue=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 15.00-17.00之间的8个M15条。
}
 
fxcourt:
如果(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
HighValue=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 15.00-17.00之间的8个M15条。
LowValue=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 15.00-17.00之间的8个M15条。
}

它不起作用!我真的不知道该怎么做...

 
01005379:

[...]

它不起作用!我真的不知道该怎么办。我真的不知道该怎么做......

它在哪些方面 不起作用?数值是错的吗?它们根本没有被计算出来吗?

 
jjc:

它在哪些方面 不起作用?数值有误吗?是不是根本就没有计算出来?

我想不出来了。当价格大于HighValue时,我就下单买入,反之,则卖出。

如何在显示器上写出这些值?Print("High value: ",HighValue);

我想这是找到这些值的唯一方法,但它们在15.00和17.00之间没有高/低。

 
你在使用M15图表吗?
 

是的,我认为最好的办法是把代码放在这里,然后也许有人能找到解决办法。


如果(Hour() == 17 && gethighlows == true)
{
gethighlows = false。
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 15.00-17.00之间的8个M15条。
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 15.00-17.00之间的8个M15条。
}

//-----

如果(Hour() ==0 && (Minute()==0 && (Seconds()==1))
{
TopRange=0。
LowRange=0;
bought=false;
sold=false;
sessionfound=false;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
如果((DayOfWeek()==1) && (Trade_on_Monday==true))TradeDayOK=true。

//-----
total=OrdersTotal();
如果(total<1)
{
如果(AccountFreeMargin()<(1000*Lots))
{
Print("我们没有钱。Free Margin = ", AccountFreeMargin())。
return(0);
}
如果(newbar==Time[0])返回(0)。
否则newbar=Time[0];

如果(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23)
{
如果((bought=false) && (Low[1] > (TopRange+Point*3))
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue)。
bought=true。
如果(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("BUY订单打开:",OrderOpenPrice())。
}
否则 Print("打开BUY订单错误 : ",GetLastError())。
return(0);
}
如果((sold==false) && (High[1] < (LowRange-Point*3)))
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red)。
sold=true。
如果(ticket>0)
{
如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("Sell order opened : ",OrderOpenPrice())。
}
否则 Print("打开卖出订单错误 : ",GetLastError())。
return(0);
}
return(0);
}
return(0);
}
}

 
那么,当你运行EA时,会发生什么?
 
它打开了买入和卖出头寸,但没有在正确的水平上。
 
01005379:

是的,我认为最好的办法是把代码放在这里,然后也许有人能找到解决办法。


如果(Hour() == 17 && gethighlows == true)
{
gethighlows = false。
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 15.00-17.00之间的8个M15条。
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 15.00-17.00之间的8个M15条。
}

//-----

如果(Hour() ==0 && (Minute()==0 && (Seconds()==1))
{
TopRange=0。
LowRange=0;
bought=false;
sold=false;
sessionfound=false;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
如果((DayOfWeek()==1) && (Trade_on_Monday==true))TradeDayOK=true。

//-----
total=OrdersTotal();
如果(total<1)
{
如果(AccountFreeMargin()<(1000*Lots))
{
Print("我们没有钱。Free Margin = ", AccountFreeMargin())。
return(0);
}
如果(newbar==Time[0])返回(0)。
否则newbar=Time[0];

如果(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23)
{
如果((bought=false) &&Ask >= TopRange)

{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue)。
bought=true。
如果(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("BUY订单打开:",OrderOpenPrice())。
}
否则 Print("打开BUY订单错误 : ",GetLastError())。
return(0);
}
如果((sold==false) &&Bid <= LowRange)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red)。
sold=true。
如果(ticket>0)
{
如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("SELL订单打开:",OrderOpenPrice())。
}
否则 Print("打开卖出订单错误 : ",GetLastError())。
return(0);
}
return(0);
}
return(0);
}
}