Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: สอบถามเรื่อง array ครับ  (Read 19411 times)

pa_don

  • Newbie
  • *
  • Posts: 37
สอบถามเรื่อง array ครับ
« on: พฤษภาคม 01, 2012, 06:43:48 pm »
สอบถามเรื่องarrayครับ

int ticket_buy[];
int i;
if(total<max_trade)  
      {
       ////////////////////pending order/////////////////
        
         if(i<max_pending)
         {
        ticket_buy[ไอ]=OrderSend(Symbol(),OP_BUYSTOP,lots,price_buy,3,0,price_buy+grid_distance,"test",0,0,Green);
         OrderSelect(ticket_buy[ไอ],SELECT_BY_TICKET,MODE_TRADES);
         i++;
         Print(ticket_buy[ไอ]);
         }
      
      }
ในกรณีนี้ เพนดิ้ง 3 ออเดอร์ผ่านครับ แต่ติดตรง ผมprint ค่า ticket_buy ออกมาดูแล้ว มันไม่มีค่าอะไรเลย แก้ไปแก้มา มีค่าเท่ากับ 0
คือผมต้องการเก็บค่าticketไว้ในอาเรย์ เพื่อให้ ea มันยืดหยุ่นดีกว่านี้อ่ะครับ รบกวน ท่านadmin ให้ความกระจ่างหน่อยครับ ขอบคุณครับ

หรือผมประกาศตัวแปรผิด มันต้อง เป็น array ticket_buy[]; อย่างนี้รึป่าว เพราะว่าประกาศตัวแปรในmt4 มันเป็น arrayอะไรไม่รู้อ่ะครับ

ปล.ผมโพส วงเล็บเปิดตามด้วย i ตามด้วยวงเล็บปิด ไม่ติดอ่ะครับ หลัง ticket_buy[ไอ]
« Last Edit: พฤษภาคม 01, 2012, 06:50:49 pm by pa_don »

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: สอบถามเรื่อง array ครับ
« Reply #1 on: พฤษภาคม 02, 2012, 02:14:28 am »
int ticket_buy[];  ต้องใส่ขนาดให้ array ครับ
กับ  Print(ticket_buy);
ต้องอยู่ก่อน i++ ครับ

pa_don

  • Newbie
  • *
  • Posts: 37
Re: สอบถามเรื่อง array ครับ
« Reply #2 on: พฤษภาคม 02, 2012, 04:09:24 pm »
ถ้าเกินใส่และกำหนดขนาดให้array มันยืดหยุ่นกับ max_pendingไม่ได้อ่ะคับ

ถ้าเกิด ใส่ค่าarrary เช่น ticket_buy[5] แต่ max_pending = 10 อย่างงี้ array เก็บค่าได้แค่ 0-5
ผมจึงอยากให้มีความยืดหยุ่น เลยใส่ ticket_buy[]=ticket_buy[max_pending] อย่างงี้อ่ะครับ แต่มันไม่ได้

ต่อไปผมก็ลงเอาไปไว้หน้า i++ มันก็มีค่าเป็น 0อีกงงครีับ รบกวนขอตัวอย่างด้วยครับท่านadmin

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
Re: สอบถามเรื่อง array ครับ
« Reply #3 on: พฤษภาคม 02, 2012, 04:36:37 pm »
array สามารปรับขนาดได้ครับ  โดยใช้คำสั่ง arrayresize

วิธีใช้น่าจะแบบนี้  ถ้าผิดขออภัย

if ( Arraysize(ticket_buy) < max_pending -1 )    // ถ้าขนาดอาเรย์น้อยกว่า
ArrayResize(ticket_buy , max_pending -1)        // เปลี่ยนขนาดอาเรย์

แต่จะเอาอาเรย์ไปทำอะไรเหรอครับ  ปกติจะเทรดกี่ออเดอร์ก็ไม่เห็นมีใครเขาใช้กัน

pa_don

  • Newbie
  • *
  • Posts: 37
Re: สอบถามเรื่อง array ครับ
« Reply #4 on: พฤษภาคม 02, 2012, 06:58:50 pm »
ขอบคุณ คุณ d_diamond ด้วยครับ เด่ววิธีที่บอกมาผมเอาไปลอง

คือผมเอาarray ไปเก็บค่าorderticket ครับ ผมสั่งตั้งpending ไว้ให้เท่ากันกับ exturn int max_pending
เพื่อที่จะเก็บค่า ticket ไว้ในตัวแปรอาเรย์ เวลา ea เปิดออร์เดอร์ ผมจะอ้างอิงจาก ticket[0-xx] ว่ามันเป็น ticket ตัวที่เท่าไหร่ อะไรประมาณนี้ครับ

pa_don

  • Newbie
  • *
  • Posts: 37
Re: สอบถามเรื่อง array ครับ
« Reply #5 on: พฤษภาคม 02, 2012, 08:31:30 pm »
สอบถามอีกอย่างครับ 
   สมมุติผม pending ไว้ทั้งบายและ เซล และราคาวิ่งไปติด เซลก่อน ผมต้องการเก็บค่าว่า เนี่ยราคามาติดpendingเซลก่อนนะเป็นออเดอร์แรก ผมจะมีวิธีเช็คยังไงบ้างครับ
เพราะ ถ้ามันติดเซลแล้วไปติดบายทีหลัง ผมจะเช็คยังไงว่า ออเดอร์แรกที่เปิดเป็นเซล ขอความรู้ด้วยครับ

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
Re: สอบถามเรื่อง array ครับ
« Reply #6 on: พฤษภาคม 02, 2012, 09:41:18 pm »
เซลกับบายที่ว่ามันตั้งไว้ที่เดียวกันรึเปล่า  ถ้าคนละที่กัน  ย่อมจะไม่เปิดพร้อมกัน  ดังนั้นเทียบเวลาเอาได้ครับ 

แต่ผมยังไม่เข้าใจทำไมจะต้องเก็บ ticket เหล่านี้เอาไว้ด้วย

pa_don

  • Newbie
  • *
  • Posts: 37
Re: สอบถามเรื่อง array ครับ
« Reply #7 on: พฤษภาคม 03, 2012, 12:54:13 am »
รบกวนคุณ d_diamond ของตัวอย่าง การเทียบเวลาหน่อยครับ เรื่องการเปิด เปิดออร์เดอร์เวลาเดียวกันครับคือpending รอ แต่pending คนละราคาครับ

ส่วนเรื่องticket ผมลองวิธีอีกวิธีแล้วครับซึ่งได้ผลเหมือนกัน ผมอาจจะคิดลึกไปหน่อย -*-


D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
Re: สอบถามเรื่อง array ครับ
« Reply #8 on: พฤษภาคม 03, 2012, 09:13:22 am »
ผมอยากถามใหม่หมดเลยมากว่า  ว่าอีเอตัวนี้ทำงานยังไงครับ  เพราะผมไม่เข้าใจว่าจะเก็บ ticket ไว้ในอาเรย์ทำอะไร

เรื่องออเดอร์เปิดก่อนเปิดหลังจริงๆมันเรียงตามเลข ticket อยู่แล้วครับ ใช้ orderselect เรียกมาตามลำดับได้เลย

pa_don

  • Newbie
  • *
  • Posts: 37
Re: สอบถามเรื่อง array ครับ
« Reply #9 on: พฤษภาคม 03, 2012, 04:37:50 pm »
ขอskype คุณ d_diamond หน่อยครับ

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
Re: สอบถามเรื่อง array ครับ
« Reply #10 on: พฤษภาคม 03, 2012, 04:39:30 pm »
adikant.kanchanawong ครับ

pa_don

  • Newbie
  • *
  • Posts: 37
Re: สอบถามเรื่อง array ครับ
« Reply #11 on: พฤษภาคม 03, 2012, 05:39:28 pm »
ผมเคยแอดไปนานแล้วครับ ชื่อนี้ แต่ทำไมไม่เห็นออนอ่า เป็นเพราะไรอ่า

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
Re: สอบถามเรื่อง array ครับ
« Reply #12 on: พฤษภาคม 03, 2012, 05:58:43 pm »
สงสัยผมไม่ได้กดรับ นึกว่าฝรั่ง อิอิ   มีฝรั่งแอดมาเยอะครับ กลัว(คุยไม่รู้เรื่อง)