外汇交易时区指标

今天完成了一个看图指标,可用于看盘和复盘。主要有两个功能:

1.计算当前烛柱的剩余时间

2.显示各个时区行情的走势情况。

目前市场上大约有 30 多个主要的外汇市场,遍布于世界各大洲的不同国家和地区。根据传统的地域划分,可分为亚洲、欧洲、北美洲等三大部分,其中最重要的有伦敦、纽约、 东京、新加坡、法兰克福、苏黎世、香港、巴黎、洛杉矶、悉尼等。

由于所处的时区不同,每一个市场形成了各自不同特点,从北京时间来看:  
 1. 悉尼外汇市场是每天全球最早开市的外汇交易市场之一, 交易时间约为北 京时间 6:00-14:00。通常汇率波动较为平静,交易品种以澳元、新西兰元和美元为主。
2. 两大外汇交易地区重叠交易时段: 如亚洲和欧洲市场重叠 (北京时间 15:00-16:00 左 右),欧洲和北美洲市场重叠(北京时间 20:00-24:00 左右)的交易时段市场最活跃。
 3. 伦敦、纽约外汇市场交易时段:特别是伦敦、纽约两个市场交易时间的重叠区(北 京时间 20:00-24:00 左右), 是各国银行外汇交易的密集区,因此是每天全球外汇市场交易 最频繁,市场波动最大,大宗交易最多的时段。

完成后的界面如下:

外汇交易时区指标_第1张图片

 

计算当前烛柱的剩余时间实现方法:

1:创建标签对象,并设置位置属性:

    ObjectCreate(0, objname, OBJ_LABEL,0, 0, 0);
    ObjectSetInteger(0, objname, OBJPROP_CORNER, Corner);
    ObjectSetInteger(0, objname, OBJPROP_XDISTANCE, 10);
    ObjectSetInteger(0, objname, OBJPROP_YDISTANCE, 2);
    ENUM_ANCHOR_POINT Anchor = ANCHOR_LEFT_UPPER;
    switch (Corner)
    {
        case CORNER_LEFT_UPPER: Anchor=ANCHOR_LEFT_UPPER; break;
        case CORNER_RIGHT_UPPER: Anchor=ANCHOR_RIGHT_UPPER; break;
        case CORNER_LEFT_LOWER: Anchor=ANCHOR_LEFT_LOWER; break;
        case CORNER_RIGHT_LOWER: Anchor=ANCHOR_RIGHT_LOWER; break;
    }
    ObjectSetInteger(0, objname, OBJPROP_ANCHOR, Anchor);

2.计算当前柱剩余时间:

    ArraySetAsSeries(timex, true);
    int m=int(timex[0]+PeriodSeconds()-TimeCurrent());
    int s=m%60;
    m=(m-s)/60;
    long spread=SymbolInfoInteger(Symbol(), SYMBOL_SPREAD);
    
    string _sp="",_m="",_s="";
    if (spread<10) _sp="..";
    else if (spread<100) _sp=".";
    if (m<10) _m="0";
    if (s<10) _s="0";
    
    ObjectSetString(0, objname, OBJPROP_TEXT, "Spread: " +IntegerToString(spread)+_sp+" Next Bar in "+_m+IntegerToString(m)+":"+_s+IntegerToString(s));
    ObjectSetInteger(0, objname, OBJPROP_FONTSIZE, 10);
    ObjectSetInteger(0, objname, OBJPROP_COLOR, Clock_Color);
    ObjectSetString(0, objname, OBJPROP_FONT, "Courier");

 

 

 

 

你可能感兴趣的:(MT5,MQL5,MQL4)