问题描述
我需要一些帮助来调用交易图表上最近的向上或向下箭头。 我知道 0 表示当前蜡烛,1 表示之前的蜡烛等等。 在不同的时间范围内交易会提醒我,当前或前一个蜡烛图有其价值,正如指标所指出的那样,但在不同的时间范围内,当前柱线或前一个柱线上不会有箭头。因此,在 mql 中,当相距几根蜡烛时,我如何从不同的时间范围内找出图表上放置的箭头。 我知道我可以使用 EMPTY_VALUE 和 if 语句走很长的路,但我想有更好的方法来做到这一点。 提前,非常感谢您的时间。
double GetOpenTradesThisPair(string CurrencyPair)
{
int counter=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==CurrencyPair)counter++;
}
return (counter);
}
double closeAllTradesThisPair()
{
for (int i=OrdersTotal();i>=0;i--)
{
OrderSelect(i,MODE_TRADES);
if (OrderSymbol()==Symbol())
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Red);
}
}
}
void OnTick()
{
string lots = AccountBalance()/3500;
string saisignal = "";
double up = iCustom(Symbol(),PERIOD_M1,"super-arrow-indicator",1);
double dn = iCustom(Symbol(),1,1);
if(up < 1000)
{
saisignal = "buy";
}
if(dn < 1000)
{
saisignal = "sell";
}
if(GetOpenTradesThisPair(Symbol())==0)
{
if(saisignal == "buy")
{
double buyticket = OrderSend(Symbol(),OP_BUY,lots,Ask,Bid-100*_Point,NULL,Blue);
}
if(saisignal == "sell")
{
double sellticket = OrderSend(Symbol(),OP_SELL,Bid,Ask+100*_Point,Orange);
}
}
if(GetOpenTradesThisPair(Symbol())>0)
{
for(int b=OrdersTotal()-1;b>=0;b--)
{
if(OrderSelect(b,MODE_TRADES))
{
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY)
{
if(saisignal == "sell")
{
closeAllTradesThisPair();
}
}
if(OrderType()==OP_SELL)
{
if(saisignal == "buy")
{
closeAllTradesThisPair();
}
}
}
}
}
}
Comment("\n","\n"," sai: ",saisignal);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)