MQL4 Script - مفتوح على سؤال شريط جديد - Page 2
الصفحة 2 من 389 FirstFirst 123 الأخيرةالأخيرة
Results 11 to 20 of 23

Thread: MQL4 Script - مفتوح على سؤال شريط جديد

  1. #11

    Quote Originally Posted by ;
    لقد فعلت ذلك باستخدام وظيفة القضبان ، ولست متأكداً من أنها مقاومة للرصاص ، لكنني أعتقد أنها تعمل أيضاً
    يرجى العلم بأن هذه الطريقة غير موثوق بها ، حيث يتوقف MT عن تحديث عدد القضبان بعد تحقيق الحد الأقصى لأعمدة القضبان. لذا ، فقط! طريقة موثوقة للتحقق من الوقت.

  2. #12

    Quote Originally Posted by ;
    {quote} يرجى العلم بأن هذه الطريقة غير موثوق بها ، حيث يتوقف MT عن تحديث عدد القضبان بعد تحقيق الحد الأقصى لأعمدة القضبان. لذا ، فقط! طريقة موثوقة للتحقق من الوقت.
    نعم ، وافق ، بالتأكيد لا تستخدم طريقة القضبان. الطريقة الأكثر موثوقية لاستخدام SeriesInfoInteger واستدعائها لـ LASTBAR_DATE ، تحقق من وجود أخطاء ، وإذا كان هناك أخطاء في الأخطاء واطلب مرة أخرى حتى انتهاء مهلة وظيفتك أو تحصل على نتيجة نظيفة. هنا مثال على MTF isNewBar function ... Inserted Code #include lt؛ Arrays \ ArrayObj.mqhgt؛ class NewBars: public CObject {ENUM_TIMEFRAMES m_timeframe؛ التاريخ والوقت m_last_bar_time public: NewBars (ENUM_TIMEFRAMES tf): m_timeframe (tf)، m_last_bar_time (0) {} bool isNewBar () {uint ms = GetTickCount ()؛ تيارات التاريخ والوقت القيام {ResetLastError ()؛ curr = (datetime) SeriesInfoInteger (_Symbol، m_timeframe، SERIES_LASTBAR_DATE)؛ } بينما (_LastError! = ERR_NO_ERROR GetTickCount () - ms lt؛ 500)؛ if (curr gt؛ 0 _LastError == ERR_NO_ERROR curr! = m_last_bar_time) {bool res = true؛ if (m_last_bar_time == 0) res = false؛ m_last_bar_time = curr؛ عودة الدقة } عودة كاذبة؛ } bool isMatching (ENUM_TIMEFRAMES tf) {return m_timeframe == tf؟ خطأ صحيح؛} }؛ bool isNewBar (const ENUM_TIMEFRAMES timeframe) {static CArrayObj tfs؛ for (int i = tfs.Total () - 1؛ igt؛ = 0؛ i--) {NewBars * tf = dynamic_castlt؛ NewBars * gt؛ (tfs.At (i))؛ إذا كان (tf.isMatching (الإطار الزمني)) إرجاع tf.isNewBar ()؛ } tfs.Add (NewBars new (timeframe))؛ عودة كاذبة؛ }

  3. #13
    1 مرفق (مرفقات)
    Quote Originally Posted by ;
    {quote} يرجى العلم بأن هذه الطريقة غير موثوق بها ، حيث يتوقف MT عن تحديث عدد القضبان بعد تحقيق الحد الأقصى لأعمدة القضبان. لذا ، فقط! طريقة موثوقة للتحقق من الوقت.
    لا (لا يتوقف التحديث) تتخطى القضبان () الحد الأقصى لعدد الأشرطة في الحالات التي يتم فيها الوصول إلى الحد الأقصى من القضبان (ويتم تجاوزه)

  4. #14

    Quote Originally Posted by ;
    {quote} نعم ، وافق ، بالتأكيد لا تستخدم طريقة القضبان. الطريقة الأكثر موثوقية لاستخدام SeriesInfoInteger واستدعائها لـ LASTBAR_DATE ، تحقق من وجود أخطاء ، وإذا كان هناك أخطاء في الأخطاء واطلب مرة أخرى حتى انتهاء مهلة وظيفتك أو تحصل على نتيجة نظيفة. هنا مثال على MTF isNewBar function ... #include lt؛ Arrays \ ArrayObj.mqhgt؛ class NewBars: public CObject {ENUM_TIMEFRAMES m_timeframe؛ التاريخ والوقت m_last_bar_time public: NewBars (ENUM_TIMEFRAMES tf): m_timeframe (tf)، m_last_bar_time (0) {} bool isNewBar () {uint ms = GetTickCount ()؛ التاريخ والوقت ...
    شكرا لك ، أنت لطيف جدا في تقديم هذه الأمثلة ، هنا وعلى المواضيع الأخرى. أتفهم ما قمت به هنا ، لكن اللغويات لا تدرك أنني ما زلت أتعلم الجانب OO من MQL4. أنا أيضًا لست متأكدًا تمامًا من أن الشفرة ستعمل داخل سياق النص البرمجي ، لكنني لست على دراية كاملة.

  5. #15
    Quote Originally Posted by ;
    {quote} يرجى العلم بأن هذه الطريقة غير موثوق بها ، حيث يتوقف MT عن تحديث عدد القضبان بعد تحقيق الحد الأقصى لأعمدة القضبان. لذا ، فقط! طريقة موثوقة للتحقق من الوقت.
    شكرا ، قرأت تناقض الردود في مختلف المواضيع حتى لم أكن متأكدا لكنه كان يعمل بالنسبة لي لذلك أنا أحسب ما هيك

  6. #16
    Quote Originally Posted by ;
    {quote} لا (لا تتوقف عن التحديث) تتخطى القضبان () الحد الأقصى لعدد الأشرطة في الحالات التي يتم فيها الوصول إلى الحد الأقصى للأعمدة {image}
    شكرا على الرد ، فهل أنا محق في استخدام طريقة القضبان هذه أم لا؟ يشعر وكأنه أبسط ثم طريقة الوقت وأنا أحب أن تبقي الأمور بسيطة

  7. #17
    Quote Originally Posted by ;
    {quote} نشكرك على الرد ، فهل أنا محق في استخدام طريقة القضبان هذه أم لا؟ يشعر وكأنه أبسط ثم طريقة الوقت وأنا أحب أن تبقي الأمور بسيطة
    لا توجد أي طريقة معقدة: تم إدراج رمز ثابت تاريخوقت _prevTime = 0؛ datetime _currTime = iTime (NULL ، الإطار الزمني المطلوب ، 0)؛ bool _isNewBar = (_prevTime! = _currTime)؛ if (_isNewBar) _prevTime = _currTime؛

  8. #18

    Quote Originally Posted by ;
    {quote} لا توجد أي طريقة معقدة: datetime ثابت _prevTime = 0؛ datetime _currTime = iTime (NULL ، الإطار الزمني المطلوب ، 0)؛ bool _isNewBar = (_prevTime! = _currTime)؛ if (_isNewBar) _prevTime = _currTime؛
    شكرا ، كان لدي شيء مماثل في البرنامج النصي الخاص بي لكنه لم يعمل (نشر في أول وظيفة) حتى عندما قمت بإضافة RefreshRates (). سأحاول مرة أخرى مع التعليمات البرمجية الخاصة بك ، مع إضافة ResreshRates () داخل وخارج الحلقة بحيث يحصل البرنامج النصي على معلومات جديدة.

  9. #19
    الرمز المدرج/--- المتغير العام ----------------------------------------- ------------------------- datetime ArrayTime # 91؛ # 93 ؛، LastTime؛ void OnTick () {if (NewBar (PERIOD_CURRENT)) {//your code}} bool NewBar (int int) {bool firstRun = false، newBar = false؛ ArraySetAsSeries (ArrayTime، صحيح)؛ CopyTime (رمز ()، فترة، 0،2، ArrayTime)؛ if (LastTime == 0) firstRun = true؛ if (ArrayTime # 91؛ 0 # 93؛ gt؛ LastTime) {if (firstRun == false) newBar = true؛ LastTime = ArrayTime # 91؛ 0 # 93 ؛؛ } عودة newBar ؛ }

  10. #20
    أيضًا ، تحقق من هذا الرمز المناسب للإطارات الزمنية التعسفية (تم الكشف عنها مع عرض السعر الأول): Insert Code #property strict void OnStart () {datetime seconds = _Period * 60؛/تحديد أي مقدار بالثواني datetime t_last_recorded = 0؛/من أجل العرض التوضيحي: D بينما (! IsStopped ()) {RefreshRates ()؛ datetime t = TimeCurrent ()؛/time of last known quote datetime t_normalized = tseconds * seconds؛ if (t_normalized gt؛ t_last_recorded) {//new bar printf (new bar!)؛ t_last_recorded = t_normalized؛ } النوم (1) ؛ }}

أذونات النشر

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
  • رمز BB مفعل
  • الابتسامات مفعلة
  • رمز[IMG] مفعل
  • رمز [VIDEO] مفعل
  • رمز HTML غير مفعل
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.