عد أوامر متعددة مع عدة أرقام سحرية في EA واحد
Results 1 to 6 of 6

Thread: عد أوامر متعددة مع عدة أرقام سحرية في EA واحد

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

    أرغب في الحصول على عدد ET MaxTotalPositions ضد إجمالي المواضع لـ ModuleA و إجمالي المواضع لـ ModuleB. يجب ألا يتجاوز EA أقصى إجمالي (A = B) ، ولكن يجب ألا يتجاوز TotalforModuleA و B على التوالي. على سبيل المثال ، إذا كان MaxTotal هو 2 ، وكان إجمالي ModuleA و B واحدًا لكل منهما ، فلا يمكن أن يتجاوز 2. هذا الجزء سهل. ومع ذلك ، إذا كان Max هو 2 ، و ModuleA هو 1 ، فإنه لا يزال يتداول حتى 2. لقد حاولت استدعاء الأوامر عن طريق السحر لجعلها أسهل في العد ولكن في مكان ما هو overcounting MaxPerModule. هل لديها أي فكرة عن كيفية التعامل مع هذا؟ يتم تجميع التعليمات البرمجية بشكل صحيح حتى لا توجد أخطاء في بناء الجملة. وهنا جزء من التعليمات البرمجية:

    /////////////////////////////////////////////////////////////////////////////

    تم الإعلان عن TotalMaxPositions عالميًا في الجزء العلوي من EA كمتغير خارجي

    extern double TotalMaxPositions = 2؛

    //////////////////////////////////////////////////////////////////////////////

    //------------------------------------------------ -
    //MAX POSITIONS ORDER COUNT
    //------------------------------------------------ -

    int TotalCurrentOrders؛
    عدد int = 0؛ عدد int = 0؛ مجموع int totalB ؛

    TotalCurrentOrders = OrdersTotal ()؛
    if (TotalCurrentOrders gt؛ = TotalMaxPositions) return (0)؛

    آخر

    if (TotalCurrentOrders lt؛ TotalMaxPositions)

    {

    إذا (countA gt؛ = MaxPositionsA) return (0)؛
    إذا كانت (countA lt؛ MaxPositionsA)
    لـ (int posA = 0؛ posa lt؛ totalA؛ posA )
    {
    إذا استمر (OrderSelect (posA، SELECT_BY_POS) == false)؛
    if (OrderMagicNumber () == MagicA) countA ؛
    }

    إذا كانت (countB gt؛ = MaxPositionsB) ترجع (0)؛
    إذا كانت (countB lt؛ MaxPositionsB)
    لـ (int posB = 0؛ posB lt؛ totalB؛ posB )
    {
    إذا استمر (OrderSelect (posB، SELECT_BY_POS) == false)؛
    if (OrderMagicNumber () == MagicB) countB ؛
    }

    if (TotalCurrentOrders gt؛ = TotalMaxPositions) return (0)؛

    }

  2. #2

    Quote Originally Posted by ;
    حسنًا ، لقد تمكنت من إنشاء EA يمكنها التعامل مع وحدات متزامنة بمعلمات تداول مختلفة يمكن تشغيلها في الوقت نفسه أو تشغيلها وإيقاف تشغيلها. على الرغم من أنني أركض في جدار مع التعامل مع عدد الطلبات. أرغب في الحصول على عدد ET MaxTotalPositions ضد إجمالي المواضع لـ ModuleA و إجمالي المواضع لـ ModuleB. يجب ألا يتجاوز EA أقصى إجمالي (A = B) ، ولكن يجب ألا يتجاوز TotalforModuleA و B على التوالي. على سبيل المثال ، إذا كان MaxTotal هو 2 ، وكان إجمالي ModuleA و B واحدًا لكل منهما ، فلا يمكن أن يتجاوز 2. هذا ...
    لماذا هذا مزدوج؟ Inserted Code extern double TotalMaxPositions = 2؛ إذا كنت تحاول مقارنة كثافة العمليات مع ضعف قد تجد أنها لا تساوي أبدا حتى لو كان. . .

  3. #3

    Quote Originally Posted by ;
    TotalCurrentOrders = OrdersTotal ()؛ if (TotalCurrentOrders gt؛ = TotalMaxPositions) return (0)؛
    ثم
    Quote Originally Posted by ;
    آخر إذا كان (TotalCurrentOrders lt؛ TotalMaxPositions)
    ثم لديك بعض التعليمات البرمجية التي تقوم بعض العد ولكن لا يبدو القيام بأي شيء مع النتيجة متبوعاً
    Quote Originally Posted by ;
    if (TotalCurrentOrders gt؛ = TotalMaxPositions) return (0)؛
    التي قمت باختبارها بالفعل (الاقتباس الأول) وتعرف أن تكون كاذبة وإلا لن يتم تنفيذ ELSE. لا يوجد شيء في التعليمات البرمجية لتغيير قيم TotalCurrentOrders أو TotalMaxPositions.

  4. #4

    Quote Originally Posted by ;
    {quote} لماذا هذا مزدوج؟ extern double TotalMaxPositions = 2؛ إذا كنت تحاول مقارنة كثافة العمليات مع ضعف قد تجد أنها لا تساوي أبدا حتى لو كان. . .
    انها مزدوجة لأنني كنت كسول جدا لتغييرها. افتراضيا كل externs بلدي الزوجي ثم قمت بتغييرها إذا لم يتم تجميعها. انتهيت للتو من أن العديد من EAs داخل EA مفهوم EA ، ولقد تركت مساحة لأكثر من 10 متغيرات بالإضافة إلى SL TP وإيقاف تشغيل وإيقاف. الآن أذهب البرية مع egies بلدي داخل EA واحد. من الأسهل بالنسبة لي اختبار الأفكار بهذه الطريقة. شكرا لمساهمتك على موضوع EA الماضي ، مع ردكم ، يمكنك أن تكون جميلة EA تفعل أي شيء أخذت الكلمة الخاصة بك وذهبت لذلك. سوف أضع في اعتبارك تعليقك على الـ vs. int ، بل واختبره ، لكني أعتقد أن رد Gumrai على عدم إضافة أو طرح TotalOrders على كل وحدة قد يكون هو ما أحتاج إلى النظر إليه.

  5. #5

    Quote Originally Posted by ;
    {quote} ثم {quote} لا يوجد شيء في التعليمات البرمجية لتغيير قيم TotalCurrentOrders أو TotalMaxPositions.
    شكرا يجعل من المنطق تماما. سوف ألقي نظرة على ذلك. أفترض أنني أفعلها بنفس طريقة (int posB = 0؛ posB lt؛ totalB؛ posB ) {if (OrderSelect (posB، SELECT_BY_POS) == false) continue؛ if (OrderMagicNumber () == MagicB) countB ؛ ولكن من خلال تعديل قيم ما أحتاج إلى الإقامة فيه أيضًا. إن الشفرة أصعب مما توقعت ، ولكن * ينبغي * أن تكون قادرة على العمل مع التغيير في المنطق (على الأقل هذا ما آمل). شكرًا على الاقتراح ، سأحاول تجربة ذلك.

  6. #6
    هل سبق لك الحصول على نتيجة في هذا؟ ايم القيام بشيء مماثل حقا لدي 4 أوامر BuyStopSellStop التي تنشط على أساس perpeters معينة ولدي معدّلات أوامر فردية لكل طلبية يبدو أنني غير قادر على الحصول عليها لتعديلها عن طريق رقم التذكرة (المسألة مع استخدام هذا في كل مرة تقوم بتعديل الترتيب الذي يغير معرّف البطاقة الذي بدوره يقتل أمر التعديل في المرة الثانية حوله يحاول تغييره ، لذا عليك استخدام الأرقام السحرية ، فاحصل على جزء من EA يعمل بشكل جيد ولكني غير قادر على الحد من كمية الطلبات من خلال Magic Number من تلقاء نفسها ، كنت أستخدم Iexpertadvisor VTS builder كما أنه من السهل تصور ما تفعله ولديه نظام خاص به للحد من الطلبات ولكنك لا تستطيع إضافة أرقام سحرية متعددة إليه. غير متأكد من أين تذهب معه من هنا حقا .......... أيضا خلقه ومحاولة لجعله صالح للاستخدام داخل IEXpertadvisor VTS هو أصعب.

أذونات النشر

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