Hola a todos,

Gracias al codificador que originalmente codificó esto.
Muy interesado en obtener un indicador de pivote semanal con un desplazamiento de zona horaria. He estado manipulando el indicador de otra persona, pero realmente no tengo ni idea?

El indicador a continuación necesita una compensación de zona horaria para que el indicador pueda tomar su precio de cierre semanal el lunes 01:59 y 59 segundos (W_yesterday_close)
y su precio de apertura semanal a las 02:00 y 00 segundos (W_today_open).

Si alguien pudiera publicar una versión codificada de un pivote semanal con compensación de zona horaria, sería muy apreciado.

Gracias

A continuación es donde está el problema en el código.

Código insertado/---------------------------------------------- ------------------------------- Semanalmente --------------- ArrayCopyRates (W_rates_d1 , Symbol (), 10080); W_yesterday_open = W_rates_d1 # 91; 1 # 93; # 91; 1 # 93 ;; W_yesterday_high = W_rates_d1 # 91; 1 # 93; # 91; 3 # 93 ;; W_yesterday_low = W_rates_d1 # 91; 1 # 93; # 91; 2 # 93 ;; W_day_high = W_rates_d1 # 91; 0 # 93; # 91; 3 # 93 ;; W_day_low = W_rates_d1 # 91; 0 # 93; # 91; 2 # 93 ;; if (DayOfWeek () == 1) {if (Hour () == 1) {if (Minuto () == 59) {if (Segundos () == 59) {W_yesterday_close = MarketInfo (Symbol (), MODE_BID) ; }}}} else W_yesterday_close = W_yesterday_close; if (DayOfWeek () == 1) {if (Hora () == 2) {if (Minuto () == 0) {if (Segundos () == 0) {W_today_open = MarketInfo (Symbol (), MODE_BID) ; }}}} else W_today_open = W_today_open; if (DayOfWeek () gt; 1) {W_yesterday_close = W_yesterday_close; W_today_open = W_today_open; } if (DayOfWeek () == 0) {W_yesterday_close = W_yesterday_close; W_today_open = W_today_open; }/---- Calcular Pivots W_D = (W_day_high - W_day_low); W_Q = (W_yesterday_high - W_yesterday_low); W_P = (W_years_igh W_yesterday_low W_yesterday_close W_today_open)4; W_R1 = (2 * W_P) -W_yesterday_low; W_S1 = (2 * W_P) -W_yesterday_high; W_R2 = W_P (W_yesterday_high - W_yesterday_low); W_S2 = W_P- (W_years_high - W_yesterday_low); W_R3 = (2 * W_P) (W_yesterday_high- (2 * W_yesterday_low)); W_M5 = (W_R2 W_R3)2;/W_R2 = W_P-W_S1 W_R1; W_M4 = (W_R1 W_R2)2;/W_R1 = (2 * W_P) -W_yesterday_low; W_M3 = (W_P W_R1)2;/W_P = (W_years_igh W_yesterday_low W_yesterday_close W_today_open)4; W_M2 = (W_P W_S1)2;/W_S1 = (2 * W_P) -W_yesterday_high; W_M1 = (W_S1 W_S2)2;/W_S2 = W_P-W_R1 W_S1; W_S3 = (2 * W_P) - ((2 * W_yesterday_high) -W_yesterday_low); W_M0 = (W_S2 W_S3)2; if (W_Q gt; 5) {W_nQ = W_Q; } else {W_nQ = W_Q * 10000; } if (W_D gt; 5) {W_nD = W_D; } else {W_nD = W_D * 10000; }



A continuación se muestra el código completo del indicador que he estado viendo.

Inserted Code/ ------------------------------------------------------------------ /| Weekly_Pivot_Indior.mq4 |/| Copyright © 2009, MetaQuotes Software Corp. |/| #91;url#93;http://www.metaquotes.net#91;/url#93; |/ ------------------------------------------------------------------ #property copyright #property link #property indior_chart_window #property indior_buffers 4 #property indior_color1 EMPTY /extern bool pivots = true; extern bool weekly = true; extern bool midpivots = false; extern int Period1 = PERIOD_W1; /--------------------------------- double W_day_high=0; double W_day_low=0; double W_yesterday_high=0; double W_yesterday_open=0; double W_yesterday_low=0; double W_yesterday_close=0; double W_today_open=0; double W_today_high=0; double W_today_low=0; double W_P=0; double W_Q=0; double W_R1,W_R2,W_R3; double W_M0,W_M1,W_M2,W_M3,W_M4,W_M5; double W_S1,W_S2,W_S3; double W_nQ=0; double W_nD=0; double W_D=0; double W_rates_d1#91;2#93;#91;6#93;; double W_ExtMapBuffer#91;#93;;/---------------------------------/ ------------------------------------------------------------------ /| Custom indior initialization function |/ ------------------------------------------------------------------ int init() { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,159); SetIndexBuffer(2, W_ExtMapBuffer); /---- indiors W_R1=0; W_R2=0; W_R3=0; W_M0=0; W_M1=0; W_M2=0; W_M3=0; W_M4=0; W_M5=0; W_S1=0; W_S2=0; W_S3=0; /---- return(0); }/ ------------------------------------------------------------------ /| Custor indior deinitialization function |/ ------------------------------------------------------------------ int deinit() {/---- TODO: add your code here/-------------------------------------- ObjectDelete(W_R1 Label); ObjectDelete(W_R1 Line); ObjectDelete(W_R2 Label); ObjectDelete(W_R2 Line); ObjectDelete(W_R3 Label); ObjectDelete(W_R3 Line); ObjectDelete(W_S1 Label); ObjectDelete(W_S1 Line); ObjectDelete(W_S2 Label); ObjectDelete(W_S2 Line); ObjectDelete(W_S3 Label); ObjectDelete(W_S3 Line); ObjectDelete(W_P Label); ObjectDelete(W_P Line); ObjectDelete(W_M5 Label); ObjectDelete(W_M5 Line); ObjectDelete(W_M4 Label); ObjectDelete(W_M4 Line); ObjectDelete(W_M3 Label); ObjectDelete(W_M3 Line); ObjectDelete(W_M2 Label); ObjectDelete(W_M2 Line); ObjectDelete(W_M1 Label); ObjectDelete(W_M1 Line); ObjectDelete(W_M0 Label); ObjectDelete(W_M0 Line);/-------------------------------------- /---- return(0); }/ ------------------------------------------------------------------ /| Custom indior iteration function |/ ------------------------------------------------------------------ int start() {/---- TODO: add your code here*/---- exit if period is greater than daily charts if(Period() gt; 1440) { Print(Error - Chart period is greater than 1 day.); return(-1);/then exit } *///----------------------------------------------------------------------------- Weekly --------------- ArrayCopyRates(W_rates_d1, Symbol(), 10080); W_yesterday_open = W_rates_d1#91;1#93;#91;1#93;; W_yesterday_high = W_rates_d1#91;1#93;#91;3#93;; W_yesterday_low = W_rates_d1#91;1#93;#91;2#93;; W_day_high = W_rates_d1#91;0#93;#91;3#93;; W_day_low = W_rates_d1#91;0#93;#91;2#93;; if(DayOfWeek()==1) {if(Hour()==1) {if(Minute()==59) {if(Seconds()==59) { W_yesterday_close = MarketInfo(Symbol(),MODE_BID); }}}} else W_yesterday_close = W_yesterday_close; if(DayOfWeek()==1) {if(Hour()==2) {if(Minute()==0) {if(Seconds()==0) { W_today_open = MarketInfo(Symbol(),MODE_BID); }}}} else W_today_open = W_today_open; if(DayOfWeek()gt;1) {W_yesterday_close = W_yesterday_close; W_today_open = W_today_open; } if(DayOfWeek()==0) {W_yesterday_close = W_yesterday_close; W_today_open = W_today_open; } /---- Calculate Pivots W_D = (W_day_high - W_day_low); W_Q = (W_yesterday_high - W_yesterday_low); W_P = (W_yesterday_high W_yesterday_low W_yesterday_close W_today_open)/4; W_R1 = (2*W_P)-W_yesterday_low; W_S1 = (2*W_P)-W_yesterday_high; W_R2 = W_P (W_yesterday_high - W_yesterday_low); W_S2 = W_P-(W_yesterday_high - W_yesterday_low); W_R3 = (2*W_P) (W_yesterday_high-(2*W_yesterday_low)); W_M5 = (W_R2 W_R3)/2; /W_R2 = W_P-W_S1 W_R1; W_M4 = (W_R1 W_R2)/2; /W_R1 = (2*W_P)-W_yesterday_low; W_M3 = (W_P W_R1)/2; /W_P = (W_yesterday_high W_yesterday_low W_yesterday_close W_today_open)/4; W_M2 = (W_P W_S1)/2; /W_S1 = (2*W_P)-W_yesterday_high; W_M1 = (W_S1 W_S2)/2; /W_S2 = W_P-W_R1 W_S1; W_S3 = (2*W_P)-((2* W_yesterday_high)-W_yesterday_low); W_M0 = (W_S2 W_S3)/2; if (W_Q gt; 5) { W_nQ = W_Q; } else { W_nQ = W_Q*10000; } if (W_D gt; 5) { W_nD = W_D; } else { W_nD = W_D*10000; }/Comment(High= ,yesterday_high, Previous DaysRange= ,nQ,\nLow= ,yesterday_low, Current DaysRange= ,nD,\nClose= ,yesterday_close, Time Frame ,Period1 ); /--------------------------------------------------------------------------------------------------------------/---- Set line labels on chart window/---------------------------------------------------------------------WEEKLY Pivot Lines -------------------- if (weekly==true) { if(ObjectFind(W_R1 label) != 0) { ObjectCreate(W_R1 label, OBJ_TEXT, 0, Time#91;0#93;, W_R1); ObjectSetText(W_R1 label, W_R1 DoubleToStr(W_R1,4), 8, Arial, EMPTY); } else { ObjectMove(W_R1 label, 0, Time#91;0#93;, W_R1); } if(ObjectFind(W_R2 label) != 0) { ObjectCreate(W_R2 label, OBJ_TEXT, 0, Time#91;20#93;, W_R2); ObjectSetText(W_R2 label, W_R2 DoubleToStr(W_R2,4), 8, Arial, EMPTY); } else { ObjectMove(W_R2 label, 0, Time#91;0#93;, W_R2); } if(ObjectFind(W_R3 label) != 0) { ObjectCreate(W_R3 label, OBJ_TEXT, 0, Time#91;20#93;, W_R3); ObjectSetText(W_R3 label, W_R3 DoubleToStr(W_R3,4), 8, Arial, EMPTY); } else { ObjectMove(W_R3 label, 0, Time#91;0#93;, W_R3); } if(ObjectFind(W_P label) != 0) { ObjectCreate(W_P label, OBJ_TEXT, 0, Time#91;0#93;, W_P); ObjectSetText(W_P label, W_Pivot DoubleToStr(W_P,4), 8, Arial,EMPTY); } else { ObjectMove(W_P label, 0, Time#91;0#93;, W_P); } if(ObjectFind(W_S1 label) != 0) { ObjectCreate(W_S1 label, OBJ_TEXT, 0, Time#91;0#93;, W_S1); ObjectSetText(W_S1 label, W_S1 DoubleToStr(W_S1,4), 8, Arial, EMPTY); } else { ObjectMove(W_S1 label, 0, Time#91;0#93;, W_S1); } if(ObjectFind(W_S2 label) != 0) { ObjectCreate(W_S2 label, OBJ_TEXT, 0, Time#91;20#93;, W_S2); ObjectSetText(W_S2 label, W_S2 DoubleToStr(W_S2,4), 8, Arial, EMPTY); } else { ObjectMove(W_S2 label, 0, Time#91;0#93;, W_S2); } if(ObjectFind(W_S3 label) != 0) { ObjectCreate(W_S3 label, OBJ_TEXT, 0, Time#91;20#93;, W_S3); ObjectSetText(W_S3 label, W_S3 DoubleToStr(W_S3,4), 8, Arial, EMPTY); } else { ObjectMove(W_S3 label, 0, Time#91;0#93;, W_S3); }/--- Draw Pivot lines on chart if(ObjectFind(W_S1 line) != 0) { ObjectCreate(W_S1 line, OBJ_HLINE, 0, Time#91;40#93;, W_S1); ObjectSet(W_S1 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_S1 line, OBJPROP_WIDTH,4); ObjectSet(W_S1 line, OBJPROP_COLOR, Blue); } else { ObjectMove(W_S1 line, 0, Time#91;40#93;, W_S1); } if(ObjectFind(W_S2 line) != 0) { ObjectCreate(W_S2 line, OBJ_HLINE, 0, Time#91;40#93;, W_S2); ObjectSet(W_S2 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_S2 line, OBJPROP_WIDTH,4); ObjectSet(W_S2 line, OBJPROP_COLOR, Blue); } else { ObjectMove(W_S2 line, 0, Time#91;40#93;, W_S2); } if(ObjectFind(W_S3 line) != 0) { ObjectCreate(W_S3 line, OBJ_HLINE, 0, Time#91;40#93;, W_S3); ObjectSet(W_S3 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_S3 line, OBJPROP_WIDTH,4); ObjectSet(W_S3 line, OBJPROP_COLOR, Blue); } else { ObjectMove(W_S3 line, 0, Time#91;40#93;, W_S3); } if(ObjectFind(W_P line) != 0) { ObjectCreate(W_P line, OBJ_HLINE, 0, Time#91;40#93;, W_P); ObjectSet(W_P line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_P line, OBJPROP_WIDTH,4); ObjectSet(W_P line, OBJPROP_COLOR, LightBlue); } else { ObjectMove(W_P line, 0, Time#91;40#93;, W_P); } if(ObjectFind(W_R1 line) != 0) { ObjectCreate(W_R1 line, OBJ_HLINE, 0, Time#91;40#93;, W_R1); ObjectSet(W_R1 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_R1 line, OBJPROP_WIDTH,4); ObjectSet(W_R1 line, OBJPROP_COLOR, Red); } else { ObjectMove(W_R1 line, 0, Time#91;40#93;, W_R1); } if(ObjectFind(W_R2 line) != 0) { ObjectCreate(W_R2 line, OBJ_HLINE, 0, Time#91;40#93;, W_R2); ObjectSet(W_R2 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_R2 line, OBJPROP_WIDTH,4); ObjectSet(W_R2 line, OBJPROP_COLOR, Red); } else { ObjectMove(W_R2 line, 0, Time#91;40#93;, W_R2); } if(ObjectFind(W_R3 line) != 0) { ObjectCreate(W_R3 line, OBJ_HLINE, 0, Time#91;40#93;, W_R3); ObjectSet(W_R3 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_R3 line, OBJPROP_WIDTH,4); ObjectSet(W_R3 line, OBJPROP_COLOR, Red); } else { ObjectMove(W_R3 line, 0, Time#91;40#93;, W_R3); } }/---- End of Pivot Line Draw /------ Midpoints Pivots if (weekly == true midpivots==true) { if(ObjectFind(W_M5 label) != 0) { ObjectCreate(W_M5 label, OBJ_TEXT, 0, Time#91;20#93;, W_M5); ObjectSetText(W_M5 label, W_M5 DoubleToStr(W_M5,4), 8, Arial, EMPTY); } else { ObjectMove(W_M5 label, 0, Time#91;0#93;, W_M5); } if(ObjectFind(W_M4 label) != 0) { ObjectCreate(W_M4 label, OBJ_TEXT, 0, Time#91;20#93;, W_M4); ObjectSetText(W_M4 label, W_M4 DoubleToStr(W_M4,4), 8, Arial, EMPTY); } else { ObjectMove(W_M4 label, 0, Time#91;0#93;, W_M4); } if(ObjectFind(W_M3 label) != 0) { ObjectCreate(W_M3 label, OBJ_TEXT, 0, Time#91;20#93;, W_M3); ObjectSetText(W_M3 label, W_M3 DoubleToStr(W_M3,4), 8, Arial, EMPTY); } else { ObjectMove(W_M3 label, 0, Time#91;0#93;, W_M3); } if(ObjectFind(W_M2 label) != 0) { ObjectCreate(W_M2 label, OBJ_TEXT, 0, Time#91;20#93;, W_M2); ObjectSetText(W_M2 label, W_M2 DoubleToStr(W_M2,4), 8, Arial, EMPTY); } else { ObjectMove(W_M2 label, 0, Time#91;0#93;, W_M2); } if(ObjectFind(W_M1 label) != 0) { ObjectCreate(W_M1 label, OBJ_TEXT, 0, Time#91;20#93;, W_M1); ObjectSetText(W_M1 label, W_M1 DoubleToStr(W_M1,4), 8, Arial, EMPTY); } else { ObjectMove(W_M1 label, 0, Time#91;0#93;, W_M1); } if(ObjectFind(W_M0 label) != 0) { ObjectCreate(W_M0 label, OBJ_TEXT, 0, Time#91;20#93;, W_M0); ObjectSetText(W_M0 label, W_M0 DoubleToStr(W_M0,4), 8, Arial, EMPTY); } else { ObjectMove(W_M0 label, 0, Time#91;0#93;, W_M0); }/---- Draw Midpoint Pivots on Chart if(ObjectFind(W_M5 line) != 0) { ObjectCreate(W_M5 line, OBJ_HLINE, 0, Time#91;40#93;, W_M5); ObjectSet(W_M5 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_M5 line, OBJPROP_WIDTH,1); ObjectSet(W_M5 line, OBJPROP_COLOR, Red); } else { ObjectMove(W_M5 line, 0, Time#91;40#93;, W_M5); } if(ObjectFind(W_M4 line) != 0) { ObjectCreate(W_M4 line, OBJ_HLINE, 0, Time#91;40#93;, W_M4); ObjectSet(W_M4 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_M4 line, OBJPROP_WIDTH,1); ObjectSet(W_M4 line, OBJPROP_COLOR, Red); } else { ObjectMove(W_M4 line, 0, Time#91;40#93;, W_M4); } if(ObjectFind(W_M3 line) != 0) { ObjectCreate(W_M3 line, OBJ_HLINE, 0, Time#91;40#93;, W_M3); ObjectSet(W_M3 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_M3 line, OBJPROP_WIDTH,1); ObjectSet(W_M3 line, OBJPROP_COLOR, Red); } else { ObjectMove(W_M3 line, 0, Time#91;40#93;, W_M3); } if(ObjectFind(W_M2 line) != 0) { ObjectCreate(W_M2 line, OBJ_HLINE, 0, Time#91;40#93;, W_M2); ObjectSet(W_M2 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_M2 line, OBJPROP_WIDTH,1); ObjectSet(W_M2 line, OBJPROP_COLOR, Blue); } else { ObjectMove(W_M2 line, 0, Time#91;40#93;, W_M2); } if(ObjectFind(W_M1 line) != 0) { ObjectCreate(W_M1 line, OBJ_HLINE, 0, Time#91;40#93;, W_M1); ObjectSet(W_M1 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_M1 line, OBJPROP_WIDTH,1); ObjectSet(W_M1 line, OBJPROP_COLOR, Blue); } else { ObjectMove(W_M1 line, 0, Time#91;40#93;, W_M1); } if(ObjectFind(W_M0 line) != 0) { ObjectCreate(W_M0 line, OBJ_HLINE, 0, Time#91;40#93;, W_M0); ObjectSet(W_M0 line, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(W_M0 line, OBJPROP_WIDTH,1); ObjectSet(W_M0 line, OBJPROP_COLOR, Blue); } else { ObjectMove(W_M0 line, 0, Time#91;40#93;, W_M0); } }/-------------=-------------------------------------------End /-----------------------------------------------------------------------------------------------------------------------/---- End Of Program return(0); }/ ------------------------------------------------------------------