باستخدام محاولة في حين حلقة؟
الصفحة 1 من 289 12 الأخيرةالأخيرة
Results 1 to 10 of 12

Thread: باستخدام محاولة في حين حلقة؟

  1. #1
    لقد كنت أحاول تكوين EA ، وللمساعدة في الحصول على مزيد من الدقة حول الوصول إلى ذروة السعر قبل وضع طلب السوق (في اتجاه صعودي قوي) ، كنت أحاول العمل مع فترة ما بعد النشر - فقط عندما أفعل لذلك ، يبدو أن المختبر يذهب إلى حلقة لا نهائية - إنه لا يؤدي البرنامج النصي على الرغم من عدم وجود أخطاء عند التحويل البرمجي.

    في ما يلي الحلقة ، إذا تمكن أي شخص من معرفة سبب عدم عملها أو تقديم أي اقتراحات لتعديلها أو تعديلها ، فإنني أقدر ذلك.

    BuyPriceMax = Bid- (TrailingBuy * Point) ؛
    بينما (Bidgt؛ = BuyPriceMax)
    إذا (Bidgt، BuyPriceMax (TrailingBuy * نقطة))
    BuyPriceMax = Bid- (TrailingBuy * Point) ؛
    النوم (10000)؛/النوم 10 ثوان
    RefreshRates ()؛


    يتبع الكود عبارة if للتأكد من زيادة الاتجاه. يجب أن تقوم بما يلي: قم بتعيين سعر تتبع (BuyPriceMax) يمكن مقارنة العطاء به على الرغم من أن سعر العطاء هو gt ؛ = BuyPriceMax ، استمر في التحقق من سعر العطاء لأي زيادة. إذا ارتفع السعر ، ارفع BuyPriceMax إلى سعر العرض مطروحًا منه TrailingBuy - وهو متغير أستخدمه للسماح للسعر بالانخفاض قليلاً حيث يرتفع إلى أعلى بدون ممارسة الطلب (مثل ما قد تضعه نقطة توقف زائدة) يجب أن تتوقف الحلقة عن التنفيذ وسيتم وضع الطلب في سعر العطاء. إذا تمكن أي شخص من مساعدتي في معرفة سبب ظهور عرض التسعير باستمرار على أنه gt؛ = BuyPriceMax ، فأنا أقدر ذلك. يبدو أنه مع أمر التحديث ، بمجرد إسقاط العطاء ، يجب إنهاء الحلقة التي يمكن تقديم طلبي إليها.

    شكر!

  2. #2
    استغرق الأمر بعض الوقت ، لكنني لا أحب ترك سؤال دون إجابة ، لذلك فهمت ذلك. ومن هنا: دعنا نقول هذا: Bid = 1.2700 TrailingBuy = 30 ، إذن this-- BuyPriceMax = Bid- (TrailingBuy * Point)؛ بينما (Bidgt؛ = BuyPriceMax) if (Bidgt؛ BuyPriceMax (TrailingBuy * Point)) BuyPriceMax = Bid- (TrailingBuy * Point)؛ النوم (10000)؛/SLEEP 10 SECONDS RefreshRates ()؛ يصبح هذا-- BuyPriceMax = 1.2700- (30 * نقطة) ؛ يصبح/BuyPriceMax 1.2670 بينما (1.2700gt ؛ = 1.2670)/يمكن أن يكون هذا صحيحًا بحيث ينتقل إلى حلقة if إذا (1.2700gt؛ 1.2670 (30 * Point))/1.2700 ليس أكبر من 1.2700 BuyPriceMax = Bid- (TrailingBuy * نقطة)./ومن هنا يتخطى هذا الخط Sleep (10000) ؛/SLEEP 10 SECONDS/وهذا السطر RefreshRates ()؛/هذا السطر/نهاية حلقة if/هنا تتحرك إلى الوراء خلال حلقة الوقت دون تحديث المعدلات ، وبالتالي يكون عرض أسعارك دائمًا 1.2700 ، مما يجعلها حلقة Wow لانهائية ، والتي تبدو جيدة لحل ذلك. فيما يتعلق بتغيير الرمز فعليًا لعلاج هذا ، إليك ما توصلت إليه: رمز المدرج BuyPriceMax = Bid- (TrailingBuy * Point) ؛ بينما (Bidgt؛ = BuyPriceMax) RefreshRates ()؛ يجب (Bidgt؛ BuyPriceMax (TrailingBuy * Point)) BuyPriceMax = Bid- (TrailingBuy * Point)؛ النوم (10000)؛SLEEP 10 ثوانٍ ملاحظة: أنت قادر على وضع صف النوم و RefreshRates () قبل أو بعد بيان if ، وقد ترغب في ذلك. أنا متأكد من أنه لن يؤثر على أي شيء. في أسوأ الأحوال سوف يعمل الكمبيوتر. عندما يرتفع السعر: BuyPriceMax = 1.2700- (30 * نقطة) ؛/BuyPriceMax يصبح 1.2670 بينما (1.2700gt ؛ = 1.2670)/قد يكون هذا دقيقًا RefreshRates ()؛/الآن قل أن العطاء ذهب إلى 1.2703 إذا كان (1.2703gt؛ 1.2670 (30 * Point))/1.2703 أعلى من 1.2700 ، وبالتالي ينتقل إلى سطر آخر BuyPriceMax = 1.2703- (30 * Point) ؛/New BuyPriceMax هو 1.2773 Sleep (10000) ؛SLEEP 10 ثوانٍ وإذا انخفض السعر: BuyPriceMax = 1.2700- (30 * Point) ؛/BuyPriceMax يصبح 1.2670 بينما (1.2700gt ؛ = 1.2670)/قد يكون هذا دقيقًا RefreshRates ()؛/الآن قل أن العطاء انخفض إلى 1.2660 إذا (1.2660gt؛ 1.2670 (30 * Point))/1.2660 ليس أكبر من 1.2700 ، لذلك يتخطى خط آخر BuyPriceMax = Bid- (TrailingBuy * Point) ؛/Line skipped Sleep (10000)؛/SLEEP 10 ثوانٍ بعد ذلك سوف يعود خلال حلقة التكرار ... بينما (1.2660gt ؛ = 1.2670)/غير دقيق ، لذلك سوف ينطلق من الحلقة ثم ينفذ الأمر ... معذرة مثل هذا القطب الطويل ، ولكن كنت بحاجة لشرح ذلك تماما.

  3. #3
    أين أخلاقي؟ أدركت أنه كان أول مشاركة لك ، لذا أهلاً بك في المصنع! هناك الكثير من الأفراد الجيدين على استعداد لتقديم يدكم ، فضلاً عن ثروة من المعرفة للتعلم منها.

  4. #4
    شكرا لك - هذا يساعد! شكرا على الترحيب هذا المنتدى ممتاز

  5. #5
    حسنًا ، اعتقدت أن كل شيء سوف يطير مع تغيير معدل التحديث قبل عبارة if ، ولكن عندما أحاول إعادة الاختبار ، لا يزال يبدو أنه يتجمد كما لو أنه في حلقة لا نهائية. يبدو أن تحقق من بقية البرنامج النصي الخاص بي لطيف عندما أعلق خارج حلقة في حين. لذلك لا يزال هناك شيء مع الحلقة التي تعطيني مشاكل. هل هناك على أي حال لطباعة نتائج الحلقة باستخدام كل التكرار بحيث أستطيع أن أرى بالضبط ما يفعله؟ ربما ينعش يعمل عند backtest؟

  6. #6
    أضفت السطرين التاليين لنشر بعض القيم في السجل. Testcomments = StringConenate (Bid =، Bid ،؛ BuyPriceMax =، BuyPriceMax، Time =، TimeToStr (iTime (NULL، 0،0)))؛ طباعة (testcomments)؛ بعد ذلك ، بمجرد تشغيل البرنامج النصي والتحقق من السجل ، تكون جميع النواحي ، بما في ذلك الوقت ، متماثلة تمامًا. في الوقت الذي لا يبدو أن هناك زيادة ، فإنه يحتفظ بصرف نفس قيم العرض و BuyPriceMax بالضبط مع القيمة الزمنية متطابقة بالضبط. هذا يبدو أنه لا يوجد تأثير لسبب التحديث ، ولا يتغير الوقت عند إجراء الاختبار الخلفي. لكن عندما أقوم بتشغيلها بدون حلقة ، تظهر قيم الوقت عادةً لكل شريط في عرض النتائج - لذا نظرًا لوجود بيانات تاريخية تظهر عند التحليل بدون حلقة ، فأنا في حيرة بسبب عدم عمل البيانات التاريخية داخل هذه الحلقة؟ أي أفكار أخرى؟ مقدر جدا :-)

  7. #7
    عندما كنت backtesting ، ربما حاول كل طريقة علامة؟ لقد سبق لك أن فعلت ذلك ؟ أنا حقا لا أفهم ، قد يكون هذا صعبا.

  8. #8
    مرحبًا ، فقط لطرح فكرة أخرى من أجلك شخصيًا ، لترميز شيء من هذا القبيل بدون حلقة ... int HighestBarin10 = Maximum (Symbol ()، 0، MODE_HIGH، 10،1)؛/يجد أعلى حانة في آخر 10 أشرطة (عداد 1 بار). . . قم بتغييرها إلى المزيد من الأشرطة إذا كنت بحاجة إلى int BuyPriceMax = مرتفع [HighestBarin10] ؛ يمنحك سعر ذلك الشريط العالي إذا لم يكن (Bid lt؛ BuyPriceMax-30 * point) OrderSend (Symbol () ، إلخ ، إلخ ، إلخ) يستخدم حلقة ، فلا بأس في تشغيل كل فترة علامات التجزئة الجديدة. أنا أؤيد إعدادًا كهذا لأنني سأفكر في نمط استحوذ على x كمية من الحانات لتطوير المقطوعة ولا يستحق التجارة. مجرد النظر غير متأكد ما إذا كان يناسب EA الخاص بك أم لا.

  9. #9
    أنا حقًا لا أعرف مقدار ما تعرفه عن حلقات الوقت ومقدار ما أعرفه مقارنة بك ، لذلك قد أكون مخطئًا ، لكن بالنظر إلى الرمز الذي كتبته ، يبدو لي أثناء حلقة أنت إعادة تعيين نفس القيمة بالضبط إلى BuyPriceMax = Bid- (trailingBuy * Point) كما كان قبل الحلقة. وبالتالي فإن القيمة التي تؤدي إلى تكرار حلقة حين لا يتم زيادة ولكن هي نفسها باستمرار. أعلم أيضًا أن الحلقة أثناءها ستدخل الحلقة عند عدم زيادة قيمة التكرار. الحل المحتمل؟ أنا حقا لا أعرف. محاولة == بدلا من =. لن يؤدي هذا إلى تعيين القيمة إلى BuyPriceMax ، ولكن سيجعلها مثالية لـ Bid- (trailingBuy * Point) آمل أن يساعدك ذلك. (لازلت اتعلم).

  10. #10
    مرحبًا lietuve ، كانت فكرتي هي أن سعر العرض يجب أن تتم ترقيته مع كل اقتباس يتم نشره - وبالتالي ، لا ينبغي أن يكون هو نفسه دائمًا ولكن سيتم ضبطه. يجب أن ينعش سحب الاقتباس. اعتقدت أن القيم ستعدل فعليًا لأعلى أو لأسفل منذ أن وصل سعر العطاء ، إذا وصل إلى مكان لم تعد فيه الدولة تحتفظ به ، فقد خرج من الحلقة ووضع الأمر. شكرا Fishtank على المدخلات الخاصة بك. يبدو واعدًا لبعض الإشارات الأخرى ، ولكن بالنسبة لما أحاول القيام به -. أنا أبحث عن شروط معينة يجب الوفاء بها قبل وضع EA الخاص بي معاملة. هذه الحلقة هي أكثر من مجرد صقل لمحاولة الدخول في مرحلة أكبر. على سبيل المثال ، إذا كنت أحاول إدخال مكان قصير عندما يكسر السعر نطاق بولينجر العلوي ، فأود أن تحدد EA ما إذا كان السعر مستمر في الارتفاع فوق النطاق - لأنه في كثير من الأحيان ، قد يستمر السعر في الارتفاع عبر العديد من الأعمدة قبل البدء في الهبوط مرة أخرى - لذلك لا أرغب في الدخول في الصفقة حتى تقترب من ذروتها. تم استخدام هذه الحلقة لتأجيل المدخل إلى أن يتحدد السعر. لذلك أنا أسمي هذا شراء تتبع بلدي. أرغب في السماح للسعر بالاستمرار في الصعود عندما يبدأ في الانخفاض تحت سعر البيع الخاص بي ، فكر في أمر الشراء بسعر السوق. هذا يعني أن مقارنات الأسعار قد تحدث داخل نفس الحانة بالضبط أو قد تنتشر عبر العديد من الحانات. نظرًا لأنه تأخير ، أعتقد أنه يجب القيام به من خلال حلقة ، ولكن ما إذا كان Bid يعمل في حلقة ، لا أعرف. لا يبدو أن الحصول على الاقتباس.

أذونات النشر

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
  • رمز 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.