النص البرمجي أو الاستراتيجية يعطي نتائج مختلفة بعد تحديث الصفحة

لا تتضمن البيانات التاريخية سجلات تحركات الأسعار داخل الشمعة البيانية؛ فقط أسعار الاأفتتاح والإغلاق وأعلى وادنى سعر (OHLC). يؤدي هذا إلى عمل نص في بعض الأحيان بشكل مختلف على البيانات التاريخية وفي الوقت الفعلي ، حيث يعرف فقط سعر الفتح وحيث يتحرك السعر عادة عدة مرات قبل أن يتم تعيين القيم العليا والمنخفضة والإغلاق النهائية للشمعة يتم تعيينها بعد إغلاق الشمعة

إذا أضفنا نصًا برمجيا على الرسم البياني، فانتظر حتى يتم حسابه على عدد من الشموع في الوقت الفعلي ثم إعادة تحميل الصفحة ، وسوف نرى أحيانًا أن تخطيط الاسكربتات تتغير قليلاً. هذا السلوك هو أحد أنواع السلوكيات المختلفة التي يشار إليها عادةً باسم المؤشر الذي يعيد بناء نفسه repainting . إنه نوع من إعادة رسم للمؤشر والذي سنشير له. يرجع ذلك إلى حقيقة أنه عند استخدام ميزات معينة في البرامج النصية ، سيتم حسابها بشكل مختلف على الأعمدة البيانية أو الشموع التاريخية والوقت الحقيقي.

تشمل أنواع السلوك الأخرى التي يُشار إليها بشكل صحيح أو خطأ على أنها إعادة رسم ، التخطيط باستخدام إزاحة سالبة على الأعمدة السابقة واستخدام معلومات مستقبلية غير متوفرة غير ذلك وردت من خلال إجراءات يساء فهمها، والتي يمكن أن تقدم بيانات غير متوفرة في الوقت الفعلي في حسابات البرنامج النصي.

ليست كل المؤشرات خاضعة لنوع إعادة الرسم الذي نناقشه هنا. في معظم الحالات ، يعتمد ذلك على ما إذا كان يتم استخدام وظائف معينة أو بنيات لغوية في التعليمات البرمجية أم لا. يرجى ملاحظة أن هذا التأثير ليس خطأ. هذا هو نتيجة الاختلافات الكامنة بين البيانات التاريخية ومعلومات الأسعار في الشموع في الوقت الحقيقي على TradingView.

يمكننا التعامل وتقبل إعادة الرسم للمؤشر في الحالات التالية

1. استخدام الاستراتيجيات calc_on_every_tick=true. مع معلم calc_on_every_tick = false قد يكون أيضًا عرضة لإعادة الرسم ، ولكن بدرجة أقل.

2. استخدام الورقة المالية لطلب البيانات من دقة أعلى من دقة الرمز الرئيسي للرسم البياني :

// Add this study on 1 minute chart
//@version=4
study("My Script")
c = security(syminfo.tickerid, "5", close)
plot(close)
plot(c, color=color.red)

ستحسب هذه الدراسة بشكل مختلف في الوقت الفعلي والبيانات التاريخية ، بغض النظر عن قيمة المعلمة lookahead (انظر فهم lookahead).

3. استخدام الورقة المالية لطلب بيانات من دقة أقل من دقة الرمز الرئيسي الرسم البياني المستخدم (مزيد من المعلومات هنا):

// Add this study on 5 minute chart
//@version=3
study("My Script")
c = security(tickerid, "1", close, lookahead=false)
plot(close)
plot(c, color=red)

إذا lookahead = false ، ستحدث إعادة الرسم. عندما تبدو lookahead = true ، تكون عملية إعادة الرسم أقل احتمالًا. قد لا يزال يحدث عندما تفوقت التحديثات 1 و 5 دقائق بعضها البعض.

4. جميع النصوص التي الحسابات اعتمادا على نقطة انطلاق. تتم محاذاة البيانات خلال اليوم مع بداية الأسبوع أو الشهر أو السنة ، وفقًا للقرار. نتيجة لهذا ، يمكن أن تختلف النتائج التي تنتجها هذه البرامج النصية من وقت لآخر. هذه هي الحالات التي تعتمد فيها البرامج النصية على نقطة البداية:

  • عندما يستخدمون  valuewhenbarssince أو  ema  (بسبب الخصائص في الخوارزمية الخاصة بهم)
  • أي استراتيجية اختبار (بغض النظر عن كيفية تعريف المعلمة calc_on_every_tick)

هناك علاقة بين الدقة ومواءمة نقطة البداية:

 

  • من 1 إلى 14 دقيقة - تتماشى مع بداية الأسبوع
  • من 15 إلى 29 دقيقة - تتوافق مع بداية الشهر
  • من 30 دقيقة فأكثر - تتماشى مع بداية العام

 

يتم أخذ القيود التالية في الاعتبار لأطوال البيانات التاريخية عند معالجة البيانات:

 

  • 40000 من الأعمدة التاريخية لعضوية Ultimate
  • 30000 من الأعمدة التاريخية لعضوية Elite
  • 25000 من الأعمدة التاريخية لعضوية Expert
  • 20000 من الأعمدة التاريخية لعضوية Premium
  • 10000 من الأعمدة التاريخية لعضوية Pro و Pro+
  • 5000 من الأعمدة التاريخية للعضويات الأخرى

5. التغييرات في البيانات التاريخية ، على سبيل المثال ، بسبب الانقسام.

6. يؤدي وجود المتغيرات التالية في البرنامج النصي عادة إلى إعادة المؤشر نفسه: