Publi |
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); }/ ------------------------------------------------------------------
Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español.
Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.