مرحبا
لقد حصلت على التعليمات البرمجية التالية التي تأمل في الحصول على MA عن طريق حساب Close-Low من الشريط الحالي. مشكلتي الأساسية هي:
عندما وضعت لأول مرة على indior تنجذب بشكل جيد. ولكن بعد ذلك تبدأ في رسم خط مستقيم ... غير قادر على معرفة السبب.
لقد شعرت أن الخطأ يرجع إلى اثنين في حين أن حلقات أنا حصلت عليها ، ويجب أن تفعل مع كل عامل الشموع. إذا كنت سأحل محل عامل الشموع من الحلقات في حين جنبا إلى جنب مع متغير الخلفية فإنه يعمل بشكل جيد ولكن من خلال القيام بذلك سوف تبقى إعادة طلاء في كل علامة من الأشرطة مرة أخرى ومرة أخرى.
أي أفكارتقديم المشورة؟
هنا الرمز الخاص بك
كود تم ادراجه #include lt؛ stderror.mqhgt؛ #include lt؛ stdlib.mqhgt؛ #property indior_level1 0 #property indior_separate_window/# property indior_chart_window/إنديور ينجذب في النافذة الرئيسية #property indior_buffers two #property indior_color1 White/# property indior_color2 Blue/- buffers dual Buf_0 # 91؛ # 93 ؛؛/- المعلمات extern int background = 3000؛ extern bool log_on = false؛ extern int MAperiod = 14؛/extern bool separate_window = true؛ بناء سلسلة = ver 0.29g-TEST-MA؛ bool isHistoryLoading؛ int lastperiod = 0؛ int init () isHistoryLoading = true؛ SetIndexStyle (0، DRAW_LINE، DRAW_SECTION، 2)؛ SetIndexBuffer (0، Buf_0)؛ SetIndexLabel (0، MA)؛ IndiorShortName (MA ( MAperiod ) construct)؛ SetLevelValue (0، 0.0000)؛/يتم وضع مبلغ الخط الأفقي بالعائد (0) ؛ int deinit () return (0)؛ int start () double ARM = 0، barARM = 0، ASB = 0؛ dual O، C، H، L؛ datetime dt، mdt، dt1، dtTemp؛ int I، j، k، trademarks، counted_bars؛/int btbars = backtest_bars؛ double Buffer # 91؛ 10000 # 93 ؛؛ يجب (isHistoryLoading) dt = iTime (الرمز () ، PERIOD_M1،0) ؛ إذا كانت (dt == 0) isHistoryLoading = true؛ إرجاع؛ isHistoryLoading = false counted_bars = 0؛ else counted_bars = IndiorCounted ()؛ يجب (candleslt؛ 0) return (0)؛ الشموع = البارات-counted_bars./index of the initial uncounted if (candlesgt؛ history-1)/If too many pubs. . الشموع = التاريخ 1؛/. حساب كمية المعطاة/********************************* MAIN WHILE LOOP ******** ******************** بينما ((ilt؛ = الشموع)) L = Lowcarbohydrate 91؛ I # 93 ؛؛ C = Close # 91؛ I # 93 ؛؛ ARM = ARM C-L. wlog (I shift I # 91؛ I # 93؛ -RRB-؛ Buffer # 91؛ I # 93؛ = ARM؛/Draw indior على weted نافذة منفصلة (Hint # 91؛ I # 93؛ = Buf_0 # 91 ؛ I # 93 ؛ -RRB- ؛ s ؛ ARM = 0 ؛/END السنة int vi = 0 ؛ المجموع المزدوج = 0.0 ؛ بينما (vilt ؛ = الشموع)/CALCULATE MA vi ؛ لـ (int vk = vi؛ vklt؛ vi MAperiod؛ vk ) sum = sum Buffer # 91؛ vk # 93 ؛؛/for sum = sumMAperiod؛ Buf_0 # 91؛ vi # 93؛ = sum؛/؛ amount = 0؛/while return (0)؛ woid void (string s) if (log_on) Print (s)؛