mql4 - 在 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);
}
解决方案
如果您将high
and声明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);
}
推荐阅读
- javascript - 无论如何要“类似模板”检查JS中的对象中是否存在缺失或错误的值?
- oracle - EF Core 与 Oracle 使用 DB First
- r - R嵌套列表具有复杂的键值关系
- mysql - 使用联合和连接从另一个表中排序表
- java - 如何制作 StaggeredGridLayoutManager rtl?
- javascript - React ClassName 不适用于文本
- javascript - 如何动态显示引导卡的图像源和标题?
- javascript - Router.post 未连接到 AJAX
- linux - 在 bash 中,复制文件的最佳方法是什么,如果它是符号链接,还要复制链接到的文件?
- angular - 从角度材料中的垫子输入中获取值