OnBar 事件 - MetaTrader 5程序库
本库实现了其它平台的onbar事件
Ps:
- 使用 BarEventSubscribe 订阅特定周期,不使用时须BarEventUnsubscribe退订,内部维护订阅计数
- 原理:在TimeCurrent > iTime(..0) + PeriodSeconds() - 2 时,触发OnBar事件
- shift表示触发时的barshift,例如M5事件,理论上在4:58秒时触发事件,此时shift=0; 但是出现卡盘等特殊情况时,可能在5:00时触发,此时shift=1(新bar已经产生)。
- 提前触发是考虑到在 new bar出现时,价格波动往往大于收线前几秒的波动(因为大多数ea都是在new bar时处理相关策略,开平仓频率会突然剧烈增加,此时再处理,滑点会大很多)
- 当然你也可以修改成new bar时触发,注释BarEventPusher中下方代码即可
datetime time0 = iTime(symbol, tf, 0);
if(lastpust != time0 && time0 + psc - 2 <= timecur && time0 + psc > timecur)
{ SubscribeData.TrySetValue(tf, time0); OnBar(tf, time0); }
#include <BarEvent.mqh>
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
BarEventClear();
BarEventSubscribe(_Period);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
BarEventPusher();
}
//+------------------------------------------------------------------+
void OnBar(ENUM_TIMEFRAMES tf,datetime time,int shift=0)
{
Print("OnBar ", TimeFrameToString(tf), " Shift = ",shift);
}
當兩條平均移動線交叉穿越時畫出影線 讓圖表更容易閱讀
股票常用的BIAS指標股票常用的BIAS指標做成的指標 用來判斷目前價格的乖離率 使用日線判斷會有比較好的效果
这是一个MT5的程序,它显示未平仓头寸的总止损和止盈价值。
持仓单一键平仓脚本在手动或自动化交易中,一键平仓功能都是比较常用的,特别是在涉及风控管理的时候,能够快速止损,有效控制风险。这个脚本功能实现起来并不难,但在程序化实现的过程中,会有一些不同的应用场景。