论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:957回复:2
草龙
注册时间2004-12-17
[MT4指标]3shadeopen开仓指标
楼主发表于:2013-12-30 19:00只看该作者倒序浏览
1楼 电梯直达
电梯直达
//+------------------------------------------------------------------+ //| 3shadeopen.mq4 | //| Copyright 2006, sx ted | //| Purpose: shade New York or other sessions for chart time frames | //| M1 to H4 (at a push). | //| version: 2 - enhanced for speed but with MT4 beeing so fast no | //| difference will be noticed, all the sessions are | //| shaded in the init(), last session if it is current | //| is widened in the start() in lieu of repainting all.| //+------------------------------------------------------------------+ #property copyright "Copyright 2006, sx ted" #property link "" #property indicator_chart_window //---- input parameters extern color ShadeColor=Gold; /* // if in Moscow #define NY_OPEN_HH 17 // NY session open hour #define NY_OPEN_MM 30 // NY session open minutes #define NY_CLOSE_HH 00 // NY session close hour #define NY_CLOSE_MM 05 // NY session close minutes */ /* if in London #define NY_OPEN_HH 14 // NY session open hour #define NY_OPEN_MM 30 // NY session open minutes #define NY_CLOSE_HH 21 // NY session close hour #define NY_CLOSE_MM 05 // NY session close minutes */ // if in New York #define NY_OPEN_HH 06 // NY session open hour #define NY_OPEN_MM 30 // NY session open minutes #define NY_CLOSE_HH 13 // NY session close hour #define NY_CLOSE_MM 05 // NY session close minutes #define MAX_DAYS_TO_SHADE 5 // maximum number of days back from last chart date to be shaded //---- global variables to program string obj; //array of object names int iPrevious=0, iStart=-1, iEnd; double dLow, dHigh; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { if(Period()>PERIOD_H4) return(0); // no shading required int iMaxBarsOnChart=iBars(NULL,0), i, iBarDay, iBarTime; // find approximate start of first day to shade int iBarsToDo=MathMin((MAX_DAYS_TO_SHADE*PERIOD_D1)/Period(),iMaxBarsOnChart); // find start of first day to shade for(i=iBarsToDo; i=iBarDay+NY_OPEN_HH*60+NY_OPEN_MM && iBarTime<=iBarDay+NY_CLOSE_HH*60+NY_CLOSE_MM) iStart=i; else if(iStart>-1) break; } if(iStart>-1) iBarsToDo=iStart; iStart=-1; // shade previous sessions and current session if started for(i=iBarsToDo; i>=0; i--) { iBarDay=TimeYear(Time)*PERIOD_MN1*12+TimeMonth(Time)*PERIOD_MN1+TimeDay(Time)*PERIOD_D1; iBarTime=iBarDay+TimeHour(Time)*60+TimeMinute(Time); if(iBarTime>=iBarDay+NY_OPEN_HH*60+NY_OPEN_MM && iBarTime<=iBarDay+NY_CLOSE_HH*60+NY_CLOSE_MM) { if(iBarDay==iPrevious) // current NY session { dLow =MathMin(dLow, Low); dHigh=MathMax(dHigh, High); } else // new NY session { dLow=Low; dHigh=High; iStart=i; iPrevious=iBarDay; } iEnd=i; } else if(iStart>-1) { PaintRectangle(); iStart=-1; } } if(iStart>-1) PaintRectangle(); // paint the last one if session not closed return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { int iaCount=ArraySize(obj); for(int i=0; i-1) ObjectDelete(obj); } return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i=0, iBarDay, iBarTime; iBarDay=TimeYear(Time)*PERIOD_MN1*12+TimeMonth(Time)*PERIOD_MN1+TimeDay(Time)*PERIOD_D1; iBarTime=iBarDay+TimeHour(Time)*60+TimeMinute(Time); if(iBarTime>=iBarDay+NY_OPEN_HH*60+NY_OPEN_MM && iBarTime<=iBarDay+NY_CLOSE_HH*60+NY_CLOSE_MM) { if(iBarDay==iPrevious) // current NY session { dLow =MathMin(dLow, Low); dHigh=MathMax(dHigh, High); } else // new NY session { dLow=Low; dHigh=High; iStart=i; iPrevious=iBarDay; } iEnd=i; PaintRectangle(); } return(0); } //+------------------------------------------------------------------+ //| Paint rectangle | //+------------------------------------------------------------------+ void PaintRectangle() { string sObj="ShadeNY_"+DoubleToStr(iPrevious, 0); // name for the object if(ObjectFind(sObj)>-1) { // current session object found, so just widen it ObjectSet(sObj,OBJPROP_PRICE1,dLow-Point); ObjectSet(sObj,OBJPROP_TIME2 ,Time[iEnd]); ObjectSet(sObj,OBJPROP_PRICE2,dHigh+Point); } else { // otherwise create new object for the session int iaCount=ArraySize(obj); ArrayResize(obj, iaCount+1); obj[iaCount]=sObj; ObjectCreate(sObj,OBJ_RECTANGLE,0,Time[iStart],dLow-Point,Time[iEnd],dHigh+Point); ObjectSet(sObj,OBJPROP_COLOR,ShadeColor); } } //+------------------------------------------------------------------+3shadeopen.jpg3shadeopen.jpg
TK29帖子1楼右侧xm竖版广告90-240
个性签名

阅尽天下指标
搬砖开始,始于2014

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
紫竹青荷
注册时间2014-02-02
积极参与奖
发表于:2014-02-03 14:13只看该作者
2楼
看看看看看看看看。。。。
紫竹青荷
注册时间2014-02-02
积极参与奖

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]