今天完成了一个看图指标,可用于看盘和复盘。主要有两个功能:
1.计算当前烛柱的剩余时间
2.显示各个时区行情的走势情况。
目前市场上大约有 30 多个主要的外汇市场,遍布于世界各大洲的不同国家和地区。根据传统的地域划分,可分为亚洲、欧洲、北美洲等三大部分,其中最重要的有伦敦、纽约、 东京、新加坡、法兰克福、苏黎世、香港、巴黎、洛杉矶、悉尼等。
由于所处的时区不同,每一个市场形成了各自不同特点,从北京时间来看:
1. 悉尼外汇市场是每天全球最早开市的外汇交易市场之一, 交易时间约为北 京时间 6:00-14:00。通常汇率波动较为平静,交易品种以澳元、新西兰元和美元为主。
2. 两大外汇交易地区重叠交易时段: 如亚洲和欧洲市场重叠 (北京时间 15:00-16:00 左 右),欧洲和北美洲市场重叠(北京时间 20:00-24:00 左右)的交易时段市场最活跃。
3. 伦敦、纽约外汇市场交易时段:特别是伦敦、纽约两个市场交易时间的重叠区(北 京时间 20:00-24:00 左右), 是各国银行外汇交易的密集区,因此是每天全球外汇市场交易 最频繁,市场波动最大,大宗交易最多的时段。
完成后的界面如下:
计算当前烛柱的剩余时间实现方法:
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");