如何解决如何调用图表上最近的箭头?
我需要一些帮助来调用交易图表上最近的向上或向下箭头。 我知道 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 举报,一经查实,本站将立刻删除。