ผู้เขียน หัวข้อ: ถามถึง Modify order ที่เปิดแล้ว  (อ่าน 377 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ lnwกำมะลอ

  • นักลงทุนขั้นเทพ
  • ****
  • กระทู้: 466
  • พลังน้ำใจ: 18
ถามถึง Modify order ที่เปิดแล้ว
« เมื่อ: 21 ตุลาคม 2018, 05:43:41 AM »
มีความรู้เรื่องเขียน ea เท่าหางอึ่งแต่อยากแก้ โดยเพิ่มเงื่อนไขการ modify order ที่เปิดไปแล้วซึ่งจะแก้ให้มันโมดิฟายเฉพาะค่า take profit  โดยอยากทราบว่าผมจะเขียนต่อจากโค้ดเดิมที่เป็น pending order ได้เลยหรือเปล่าครับหรือต้องแยกมาสร้างใหม่ นี่เป็นโค้ดตรงส่วนที่เป็น pending order

void ModifyPending( )
{
int ordertotal;
int count=0;
 ordertotal=OrdersTotal()-1;
 for(;ordertotal>=0;ordertotal--)
 {
  if(OrderSelect(ordertotal,MODE_TRADES))
  {
   if(Symbol()==OrderSymbol()   && OrderMagicNumber() == Magic )
   {
     if(OrderType()==OP_SELLLIMIT && OrderOpenPrice() > Ask+Gap*Point )
     OrderModify(OrderTicket(),Ask+Gap*Point,0,Ask-(Gap-TP)*Point,0);
   
     if(OrderType()==OP_BUYLIMIT && OrderOpenPrice() < Bid-Gap*Point )
     OrderModify(OrderTicket(),Bid-Gap*Point,0,Bid+(Gap-TP)*Point,0);
   }
   
  }
 }

}

 

ออฟไลน์ demoinvest

  • นักลงทุนขั้นเทพ
  • ****
  • กระทู้: 12128
  • พลังน้ำใจ: 1075
Re: ถามถึง Modify order ที่เปิดแล้ว
« ตอบกลับ #1 เมื่อ: 21 ตุลาคม 2018, 23:22:54 PM »
ต้องให้โปรแรกเมอร์ตัวจริงมาตอบละครับ ผมแค่โมก็งูๆปลาๆ

เท่าที่สังเกตุดูจาก  void ModifyPending( )   ชุดนี้เป็นฟังชั่นครับ

ถ้าจะแก้ เลยก็แก้บรรทัดค่าตัวแปร take profit เลยครับ

หรือถ้าจะก็อปฟังชั่น ก็ต้องก็อปทั้งชุด และตั้งค่าใหม่เป็น  void ModifyTakeProfit( )  อะไรประมาณนี้ ก็จะได้ฟั่งชั่นเพิ่มมาอีก 1 ชุด แล้วก็ไปเพิ่มเงื่อนไขที่เรียกฟังชั่นนี้ไปทำงานเพิ่มอีกครับ น่าจะประมารนี้นะ

ออฟไลน์ lnwกำมะลอ

  • นักลงทุนขั้นเทพ
  • ****
  • กระทู้: 466
  • พลังน้ำใจ: 18
Re: ถามถึง Modify order ที่เปิดแล้ว
« ตอบกลับ #2 เมื่อ: 22 ตุลาคม 2018, 22:18:35 PM »
อ่อครับ พอดีเห็นว่าเงื่อนไขคล้ายกัน แต่ก๊อปแล้วแยกไปเลยน่าจะเวิร์คกว่า  :wanwan011:

ออฟไลน์ Adisak

  • นักลงทุนขั้นเทพ
  • ****
  • กระทู้: 299
  • พลังน้ำใจ: 5
Re: ถามถึง Modify order ที่เปิดแล้ว
« ตอบกลับ #3 เมื่อ: 22 ตุลาคม 2018, 22:32:24 PM »
 :wanwan011:

ออฟไลน์ 0_0

  • นักลงทุนขั้นเทพ
  • ****
  • กระทู้: 168
  • พลังน้ำใจ: 11
Re: ถามถึง Modify order ที่เปิดแล้ว
« ตอบกลับ #4 เมื่อ: 23 ตุลาคม 2018, 08:16:39 AM »
ถ้าเขียนวางไว้ที่โค้ด pending order เลย มันจะหมายความว่า เปิด pending ปุ๊บ ก็แก้ปั๊บ เพราะโปรแกรมจะรันไปทีละคำสั่งจนจบฟังก์ชั่น แต่ถ้าหมายถึงหากกราฟมีเงื่อนไขอะไรที่ตรงกับที่อยากให้โปรแกรมมันแก้ pending order เก่าก็ควรจะแยกออกมาเขียนเป็นอีกฟังก์ชั่นดีกว่านะครับ




« แก้ไขครั้งสุดท้าย: 23 ตุลาคม 2018, 08:19:33 AM โดย 0_0 »
It's not the strong one that wins, the one that wins is strong.

ออฟไลน์ lnwกำมะลอ

  • นักลงทุนขั้นเทพ
  • ****
  • กระทู้: 466
  • พลังน้ำใจ: 18
Re: ถามถึง Modify order ที่เปิดแล้ว
« ตอบกลับ #5 เมื่อ: 23 ตุลาคม 2018, 23:38:21 PM »
ถ้าเขียนวางไว้ที่โค้ด pending order เลย มันจะหมายความว่า เปิด pending ปุ๊บ ก็แก้ปั๊บ เพราะโปรแกรมจะรันไปทีละคำสั่งจนจบฟังก์ชั่น แต่ถ้าหมายถึงหากกราฟมีเงื่อนไขอะไรที่ตรงกับที่อยากให้โปรแกรมมันแก้ pending order เก่าก็ควรจะแยกออกมาเขียนเป็นอีกฟังก์ชั่นดีกว่านะครับ

ขอบคุณครับ ตอนแรกคิดว่าเงื่อนไขเดียวกันถึงจะรันคำสั่งในฟังชั่นเดียวกันแต่ ถ้ายังไม่ได้เปิดออเดอร์ก็ไม่มีผลอะไร แต่มาคิดอีกทีเผื่อมีการเพิ่มเงื่อนไขจะยุ่งยากไป แยกกันน่าจะดีกว่า  :wanwan011:

ออฟไลน์ lnwกำมะลอ

  • นักลงทุนขั้นเทพ
  • ****
  • กระทู้: 466
  • พลังน้ำใจ: 18
Re: ถามถึง Modify order ที่เปิดแล้ว
« ตอบกลับ #6 เมื่อ: 07 พฤศจิกายน 2018, 01:16:15 AM »
ตอนนี้ modify เลื่อน tp ของออเดอร์ที่เปิดได้แล้ว แต่มันเลื่อนขึ้นลงไม่หยุดซะงั้น ใครก็ได้ช่วยที  :wanwan011: :wanwan011: :wanwan011: