ปัญหาเกี่ยวกับการกำหนดองค์ประกอบอาร์เรย์ 2D
Results 1 to 3 of 3

Thread: ปัญหาเกี่ยวกับการกำหนดองค์ประกอบอาร์เรย์ 2D

  1. #1
    แนบเป็นส่วนหนึ่งของที่ปรึกษาผู้เชี่ยวชาญฉันได้รับการทำงานในการทดสอบกลยุทธ์การซื้อขาย แต่ฉันมีปัญหากับข้อ จำกัด ของ MQL4 บางอย่างเมื่อจัดการกับอาร์เรย์ สิ่งที่ฉันต้องการให้ใช้อาร์เรย์เพื่อเก็บข้อมูลเกี่ยวกับตำแหน่งที่ฉันเปิดไว้และกำหนดค่าขององค์ประกอบบางอย่างใหม่อีกครั้ง สิ่งที่ฉันต้องการจะใช้คือชุดของฟังก์ชันสามอย่างแรก reconstructs อาร์เรย์ของคำสั่งที่เปิด นี้จะทำหลังจากทุกตำแหน่งการเปิดหรือปิด ฟังก์ชันลำดับถัดไปควรเรียงลำดับคำสั่งซื้อตามราคาเปิดของตน ฟังก์ชันลำดับล่าสุดคือการกำหนดใหม่การหยุดการขาดทุนและการรับกำไรสำหรับธุรกิจการค้าแบบเปิด ค่าที่กำหนดไว้ล่วงหน้าสำหรับการหยุดขาดทุนและรับรู้กำไรจะขึ้นอยู่กับราคาเปิดของคำสั่งแรก ฉันต้องการให้อีเอดำเนินการหยุดขาดทุนและทำกำไรตามลำพัง ฉันตระหนักดีว่ามีความเสี่ยงในการตั้งค่าอีเอด้วยวิธีนี้และฉันต้องการดำเนินการต่อไป





    คู่ OrderStack [7] [9];/Order array ข้อมูล


    ถ้า ((OrderStack [TotalOrders 1] [1] lt; Bid) (TotalOrders lt; 2))/เปิดตำแหน่งขายใหม่ในราคาที่ดีขึ้น
    {//3
    TicketNum = OrderSend (สัญลักษณ์ (), OP_SELL, LotSize2, การเสนอราคา, 3,0,0, ความคิดเห็น, 0.0, สีแดง);/เปิดคำสั่งซื้อ
    ถ้า (TicketNumlt; 0)
    {/4
    พิมพ์ (ข้อผิดพลาดในการเปิดการค้า: Error Code =, GetLastError () ,, Lotsize:, Lots);
    }/3
    อื่น
    {/4
    ถ้า (OrderSelect (TicketNum, SELECT_BY_TICKET))
    {/5
    พิมพ์ (ใบสั่งซื้อที่เปิดในราคา:, OrderOpenPrice ());
    OrderFlagS = 1;/ใช้โดยฟังก์ชัน EA หลักสำหรับแสดงความคิดเห็น
    เทอร์มิ ();/เรียกใช้ฟังก์ชันที่สร้างอาร์เรย์ข้อมูลคำสั่งเปิด
    }/4
    }/3
    }/2
    }/1
    }/0

    //------------------------------------------------ --------------------
    //Terminal.mqh
    //------------------------------------------------ ------------------------------ 1 -
    //ฟังก์ชันการทำบัญชีการสั่งซื้อ
    //ตัวแปรสากล:
    //OrderStack [7] [9]
    //อาร์เรย์คำสั่งที่รู้จักกันดีล่าสุด
    //1 ดัชนี = เลขที่ใบสั่ง
    //[] [0] ไม่ได้นิยาม
    //[] [1] ราคาเปิดเพื่อเสนอราคา (abs. value value)
    //[] [2] StopLoss ของคำสั่งซื้อ (abs ราคาราคา)
    //[] [3] TakeProfit ในใบสั่ง (abs ราคาราคา)
    //[] [4] เลขที่ใบสั่ง
    //[] [5] ปริมาณการสั่งซื้อจำนวนมาก (abs. price value)
    //[] [6] ประเภทการสั่งซื้อ 0 = B, 1 = S, 2 = BL, 3 = SL, 4 = BS, 5 = SS
    //[] [7] เลขเวทมนต์
    //[] [8] ความพร้อมใช้งาน 0/1 ความคิดเห็น
    //Mas_Tip [6]
    //อาร์เรย์ของจำนวนคำสั่งซื้อทุกประเภท
    //[] ประเภทใบสั่ง: 0 = B, 1 = S, 2 = BL, 3 = SL, 4 = BS, 5 = SS
    //------------------------------------------------ ------------------------------ 2 -
    ขั้วคู่ ()
    {//1
    int Mas_Tip [6];
    int Qnt = 0;
    int i;

    //เคาน์เตอร์ใบสั่งซื้อ
    //------------------------------------------------ ------------------------------ 3 -

    ArrayInitialize (OrderStack, 0.0);/ลดขนาดอาร์เรย์
    ArrayInitialize (Mas_Tip, 0);/ลดขนาดอาร์เรย์
    //------------------------------------------------ ------------------------------ 4 -
    สำหรับ (i = 0; i lt; OrdersTotal (); i )/สำหรับคำสั่งซื้อในตลาดและคำสั่งที่รอดำเนินการ
    {/2
    if ((OrderSelect (i, SELECT_BY_POS) == true) (OrderSymbol () == สัญลักษณ์ ()))
    //ถ้ามีอีก .. และคู่สกุลเงินของเรา
    {//3
    //------------------------------------------------ --------------------- 5 -
    Qnt;/จำนวนคำสั่งซื้อ
    OrderStack [Qnt] [1] = OrderOpenPrice ();/สั่งซื้อราคาเปิด
    OrderStack [Qnt] [2] = OrderStopLoss ();/SL ราคา
    OrderStack [Qnt] [3] = OrderTakeProfit ();/ราคา TP
    OrderStack [Qnt] [4] = OrderTicket ();/เลขที่ใบสั่ง
    OrderStack [Qnt] [5] = OrderLots ();/จำนวนล็อต
    Mas_Tip [OrderType ()] ;/จำนวนคำสั่งซื้อของประเภท
    OrderStack [Qnt] [6] = OrderType ();/ประเภทการสั่งซื้อ
    OrderStack [Qnt] [7] = OrderMagicNumber ();/หมายเลขเมจิก
    ถ้า (OrderComment () ==)
    {/4
    OrderStack [Qnt] [8] = 0;/ถ้าไม่มีข้อคิดเห็น
    }/3
    อื่น
    {/4
    OrderStack [Qnt] [8] = 1;/ถ้ามีข้อคิดเห็น
    }/3
    }/2
    //------------------------------------------------ --------------------- 6 -

    OrderStack [0] [0] = Qnt;/จำนวนคำสั่งซื้อ

    //------------------------------------------------ ------------------------------ 7 -

    FillStack (OrderStack, Trend_Up);/เรียกใช้ฟังก์ชันที่จัดเรียงข้อมูลทางการค้าแบบเปิดตามทิศทางแนวโน้มและราคาเริ่มต้นของการซื้อขาย
    ผลตอบแทน (0);
    }/1

    }/0
    //------------------------------------------------ ------------------------------ 8 -




    //
    ฟังก์ชั่นการเรียงลำดับที่มีอยู่
    //

    double SortStack (Double OrderStack [7] [9], bool Trend_Up)/ฟังก์ชันเพื่อเรียงลำดับอาร์เรย์การสั่งซื้อใหม่ใน
    //คำสั่งซื้อตามราคาเปิดเริ่มต้น
    {//1
    int i, TotalOrders;
    TotalOrders = OrderStack [0] [0];

    if (Trend_Up == true)
    {/2
    ArraySort (OrderStack [TotalOrders] [1], TotalOrders, 1, MODE_DECEND);
    }/1
    if (Trend_Up == false)
    {/2
    ArraySort (OrderStack [TotalOrders] [1], TotalOrders, 1, MODE_ASCEND);
    }/1
    FillStack (OrderStack, Trend_Up);/โทรไปยังฟังก์ชันที่กำหนดพารามิเตอร์ทางการค้าสำหรับอาการไม่พึงประสงค์
    //เข้าสู่ตลาดเพื่อเรียงลำดับ
    ผลตอบแทน (0);
    }/0

    //
    //บันทึกพารามิเตอร์การค้าตลาดที่ไม่พึงประสงค์ฟังก์ชัน
    //

    Double FillStack (Double OrderStack [7] [9], bool Trend_Up)กำหนดพารามิเตอร์การตลาดที่ไม่พึงประสงค์
    //ตามลำดับเริ่มต้นจากการเจาะแถบ Bollinger

    {//1

    ราคาคู่;

    PriceIn = OrderStack [1] [1];
    {/2
    if (Trend_Up == true)
    {//3
    OrderStack [1] [2] = ราคาใน - StopLossVal;/คอลัมน์ 2 คอลัมน์การหยุดการสูญเสีย
    OrderStack [1] [3] = ราคา 0.0030;/คอลัมน์ 3, เอาคอลัมน์รายการกำไร
    OrderStack [2] [1] = ราคา - 0.0010;/คอลัมน์ 1 ราคาเฉลี่ยลง Market Order ซื้อราคา
    OrderStack [2] [3] = ราคาใน - 0.0005;/คอลัมน์ 3 ทำกำไรสำหรับการเข้าสู่ตลาดโดยเฉลี่ย
    }/2
    if (Trend_Up == false)
    {//3
    OrderStack [1] [2] = ราคา In StopLossVal;/คอลัมน์ 2 คอลัมน์การหยุดการสูญเสีย
    OrderStack [1] [3] = ราคาใน - 0.0030;/คอลัมน์ 3, เอาคอลัมน์รายการกำไร
    OrderStack [2] [1] = ราคา 0.0010;/คอลัมน์ 1 ราคาเฉลี่ยลง Market Order ซื้อราคา
    OrderStack [2] [3] = ราคา In 0.0005;/คอลัมน์ 3 ทำกำไรสำหรับการเข้าสู่ตลาดโดยเฉลี่ย
    }/2
    }/1
    ผลตอบแทน (0);
    }/0




    ปัญหาฉันมีกับการใช้อีเอนี้เป็นที่เรียบเรียงให้ฉันข้อความผิดพลาดเกี่ยวกับ ”รายการอาร์เรย์ไม่สามารถกำหนด” สำหรับรหัสใน FillStack ของฉัน () ฟังก์ชัน. สิ่งที่ทำให้งงคือดูเหมือนว่าจะเป็นเหมือนสิ่งที่กำลังทำอยู่ในฟังก์ชัน Terminal () ข้างบนฟังก์ชัน FillStack () ของฉัน อย่างไรก็ตามฉันหวังว่าหนึ่งในโปรแกรมเมอร์ที่มีประสบการณ์สามารถให้ฉันแก้ไขข้อผิดพลาดนี้โดยเฉพาะ
    ยากที่จะเชื่อว่ามีความคล้ายคลึงกันทั้งหมดที่ MQL4 มีกับ C ว่าความสามารถในการกำหนดค่าให้กับอาร์เรย์องค์ประกอบเช่น C จะไม่อยู่ใน MQL4 ด้วย ขอขอบคุณสำหรับความช่วยเหลือ.

  2. #2
    ข้อผิดพลาดนี้แสดงถึงการเขียนลงในอาร์เรย์แบบอ่านอย่างเดียว เนื่องจากโพสต์นี้เก่ามากฉันสมมติว่าคุณพบโซลูชันและไม่ได้โพสต์การติดตามผลหรือพบโซลูชันทางเลือก รหัสที่แทรก Double OrderStack # 91; 7 # 93; # 91; 9 # 93; void function (double array # 91; # 93; # 91; # 93 {แจ้งเตือน (อาร์เรย์ขนาด ArraySize (อาร์เรย์)); อาร์เรย์ # 91; 0 # 93; # 91; 0 # 93; = EURUSD;/ข้อผิดพลาดไม่ได้รับอนุญาตให้เขียน} ความลับในการอ่านเขียนอาร์เรย์ผ่านไปยังฟังก์ชันอยู่ในการประกาศ บล็อกโค้ดต่อไปนี้จะไม่ผ่านข้อผิดพลาด รหัสที่แทรก Double OrderStack # 91; 7 # 93; # 91; 9 # 93; void function (# 91; color = สีม่วง # 93 คู่ # 91สี # 93 # 91 b # 93 # 91 สี = แดง # 93 # 91;สี # 93 # 91;b # 93; อาร์เรย์ # 91; # 93; # 91; # 93 {การแจ้งเตือน (อาร์เรย์ขนาด ArraySize (อาร์เรย์)); อาร์เรย์ # 91; 0 # 93; # 91; 0 # 93; = EURUSD;/ข้อผิดพลาดไม่ได้รับอนุญาตในการเขียน} สองครั้งในการประกาศฟังก์ชันชี้ฟังก์ชันกลับไปยังอาร์เรย์ทั่วโลก (หรืออาร์เรย์ในผู้เรียกฟังก์ชัน) ฉันหวังว่านี้จะช่วยประหยัดเวลาสำหรับ folks ใครอาจเจอ woes ของคุณ

  3. #3

    Quote Originally Posted by ;
    OrderStack [0] [0] = Qnt;/จำนวนคำสั่ง TotalOrders = OrderStack [0] [0];
    สวัสดีเพียงแค่ทราบว่าการจองพื้นที่สำหรับเก้าคู่สำหรับข้อมูลที่สามารถจัดขึ้นในจำนวนเต็มหนึ่งดังที่แสดงในข้อความที่ยกมาข้างต้นของคุณคือการจัดการพื้นที่ที่ไม่ดี เรียนรู้และเรียนรู้ฟังก์ชันอาเรย์ในแฟ้มวิธีใช้ MetaEditor (Navigator) และโปรดจำไว้เสมอว่าข้อมูลที่ลอยอยู่รอบ ๆ โค้ดคอมพิวเตอร์จะทำงานช้าลง

การขออนุญาตโพส

  • ห้ามโพสข้อความใหม่
  • ห้ามโพสตอบ
  • ห้ามแนบไฟล์
  • ห้ามแก้ไขโพส
  •  
  • รหัส BB เปิด
  • Smilies ปิด
  • รหัส [IMG] เปิด
  • รหัส [VIDEO] เปิด
  • รหัส HTML ปิด
นโยบาย Cookie
นโยบาย Cookie: เว็บไซต์ thaitradeforex มีการใช้ cookies และสำหรับการดำเนินการเยี่ยมชมเว็บไซต์ ท่านได้ยอมรับในสิ่งนี้ สำหรับข้อมูลเพิ่มเติมโปรดอ่าน 'Cookie Disclosure'.