متغيرات صفيف لا يمكن تلقي القيم العددية
Results 1 to 3 of 3

Thread: متغيرات صفيف لا يمكن تلقي القيم العددية

  1. #1
    مرحبا ، المبرمجين من ذوي الخبرة!

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

    كما يظهر رمز المرفقة ، أعلن بعض المتغيرات في شكل صفيف قبل init (). في وقت لاحق ، في إجراء لتلخيص عدد الصفقات ، وعدد العقود ، والربحالخسارة العائمة ، لن يعمل الحساب لوضع هذه القيم في متغيرات الصفيف المعلنة.

    4 التنبيهات () أنا وضعت في رمز جميع عودة 0 للقيم المقابلة (NO.of الحرف ، والكم ، و PL) ، في حين أنها في الواقع من المفترض أن تعكس قيم مثل 2،3،0،6 ، أو 120 ( فمثلا).

    مثال واحد: هذا الخط:
    تنبيه (lt؛ 2gt ؛: هذا Pairs [i] له PL من DoubleToStr (PairNetPL [i] ، 1))؛

    يجب أن تعطيني:
    lt ؛ 2gt ؛: هذا USDJPY لديه PL من 110.5

    لكن في الواقع يعطيني:
    lt ؛ 2gt ؛: هذا USDJPY لديه PL من 0

    المشكلة هي أنني متأكد من إرجاع OrderProfit () 110.5 أيضاً. على ما يبدو ، على نحو ما ، لا يمكن نقل القيم ببساطة إلى الصفيف حتى يكتب شفرتي ذلك.

    يمكن لأي شخص أن يضيء لي هنا؟

    شكرا جزيلا.

    كود مدرج مزدوج PairBuys # 91 ؛ # 93 ؛ ، PairSells # 91 ؛ # 93 ؛ ، PairNetPos # 91 ؛ # 93 ؛ ، PairNetLot # 91 ؛ # 93 ؛ ، PairNetPL # 91 ؛ # 93 ؛؛/before the init () void Count_PL_Trades_Lots () {TotalTrades = 0؛ EAPL = 0.0؛ ArrayInitialize (PairBuys، 0)؛ ArrayInitialize (PairSells، 0)؛ ArrayInitialize (PairNetPos، 0)؛ ArrayInitialize (PairNetLot، 0)؛ ArrayInitialize (PairNetPL، 0)؛ لـ (int k = 0؛ k lt؛ OrdersTotal ()؛ k ) {OrderSelect (k، SELECT_BY_POS، MODE_TRADES)؛ if (OrderMagicNumber () == MagicNumber OrderLots () == Lots) {for (int i = 0؛ i lt؛ ArraySize (Pairs)؛ i ) {if (OrderSymbol () == Pairs # 91؛ i # 93؛) {Alert (lt؛ 1gt ؛: pair is Pairs # 91؛ i # 93؛ type of OrderType () ، PL OrderProfit ())؛ PairNetPL # 91؛ ط # 93؛ = PairNetPL # 91 ؛ i # 93؛ OrderProfit ()؛ تنبيه (lt؛ 2gt ؛: this Pairs # 91؛ i # 93؛ PL DoubleToStr (PairNetPL # 91؛ i # 93؛، 1))؛ EAPL = EAPL PairNetPL # 91؛ i # 93 ؛؛ if (OrderType () == OP_BUY) {PairBuys # 91؛ i # 93؛ = PairBuys # 91 ؛ i # 93؛ 1 تنبيه (lt؛ 3gt ؛: DoubleToStr (PairBuys # 91؛ i # 93؛، 1))؛ } if (OrderType () == OP_SELL) PairSells # 91؛ i # 93؛ = PairSells # 91 ؛ i # 93؛ 1 تنبيه (WindowExpertName () Pairs # 91؛ i # 93؛ DoubleToStr (PairBuys # 91؛ i # 93؛، 0) buys؛ و DoubleToStr (PairSells # 91؛ i # 93؛، 0) sells )؛ }}}} لـ (i = 0؛ i lt؛ ArraySize (Pairs)؛ i ) {if (PairBuys # 91؛ i # 93؛ gt؛ PairSells # 91؛ i # 93؛) PairNetPos # 91؛ i # 93؛ = PairBuys # 91 ؛ i # 93؛ - PairSells # 91؛ i # 93 ؛؛ else PairNetPos # 91؛ i # 93؛ = -PairBuys # 91 ؛ i # 93؛ PairSells # 91؛ i # 93 ؛؛ PairNetLot # 91؛ ط # 93؛ = PairNetPos # 91 ؛ i # 93؛ * الكثير؛ TotalTrades = TotalTrades PairNetPos # 91؛ i # 93 ؛؛ }/Alert (WindowExpertName () - TotalTrades: DoubleToStr (TotalTrades، 0))؛ عودة (0)؛ }

  2. #2

    Quote Originally Posted by ;
    كما يظهر رمز المرفقة ، أعلن بعض المتغيرات في شكل صفيف قبل init (). في وقت لاحق ، في إجراء لتلخيص عدد الصفقات ، وعدد العقود ، والربحالخسارة العائمة ، لن يعمل الحساب لوضع هذه القيم في متغيرات الصفيف المعلنة.
    أرى المكان الذي تقوم فيه بتعريف المتغيرات الخاصة بالصفائف ، ولكن أين تقوم بالفعل بتعيين حجم المصفوفات؟

  3. #3
    مرحبا ، ZZ ، أتيت لإنقاذ لي ، لول ch لطيفة ، لم أكن تعيين حجم الصفيف. اعتقدت أنه مع for-loop ، سيتم التعامل مع عنصر المصفوفة بشكل ضمني على أية حال ، إذن هذه هي المشكلة؟ سأذهب إلى الأمام لتصحيح واختبار. شكرا مرة أخرى ، وربما أكثر نقطة معك ، ZZ!
    Quote Originally Posted by ;
    {quote} ألاحظ المكان الذي تقوم فيه بتعريف المتغيرات الخاصة بالصفائف ، ولكن أين تقوم بالفعل بتعيين حجم المصفوفات؟
    Quote Originally Posted by ;
    {quote} ألاحظ المكان الذي تقوم فيه بتعريف المتغيرات الخاصة بالصفائف ، ولكن أين تقوم بالفعل بتعيين حجم المصفوفات؟

أذونات النشر

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