首页 > 解决方案 > 在 MQL4 / MT4 中,如何在一定条件下存储和获取先前关闭蜡烛的开盘价、收盘价?

问题描述

回撤区

嗨,我如何存储和获取上一个收盘蜡烛的最高价和开盘价的值,因为每个之前的收盘蜡烛的价值都会不断变化?这个想法是当条件为真存储打开和高的值时,从某个条件获得高和打开。技术术语称为回调区域。

double high=0,open=0,
AskPrice=MarketInfo(OrderSymbol(),MODE_ASK),
BidPrice=MarketInfo(OrderSymbol(),MODE_BID);

bool sellcondition = Open[1] > Close[1] && High[1] > Open[1] && Close[1] > Low[1];

if( sellcondition )
{
  open=Open[1];
  high=High[1];
}

if(Bid > open && Bid < high)
{
  OrderSend(Symbol(),OP_SELL,0.01,BidPrice,3,0, 0,"",0,0,clrRed);
}

标签: mql4tradingalgorithmic-tradingmetatrader4forex

解决方案


如果您将highand声明open全局范围静态变量,然后仅在满足您的条件时为它们分配值,那么在任何未来柱中,它们将包含最后一次满足条件的 High 和 Open 值。例如,您的代码片段可以修改如下:

static double high=0,open=0,
AskPrice=MarketInfo(OrderSymbol(),MODE_ASK),
BidPrice=MarketInfo(OrderSymbol(),MODE_BID);

bool sellcondition = Open[1] > Close[1] && High[1] > Open[1] && Close[1] > Low[1];

if( sellcondition )
{
  open=Open[1];
  high=High[1];
}

if(Bid > open && Bid < high)
{
  OrderSend(Symbol(),OP_SELL,0.01,BidPrice,3,0, 0,"",0,0,clrRed);
}

推荐阅读