MT4 - การทำกำไรหลายระดับปิดบางส่วน
Results 1 to 10 of 10

Thread: MT4 - การทำกำไรหลายระดับปิดบางส่วน

  1. #1
    ฉันต้องการปิดคำสั่งซื้อในระดับต่างๆ ตัวอย่างฉันปิดใบสั่งซื้อครึ่งหนึ่งที่ takeprofit1 และส่วนที่เหลือที่ takeprofit2 ใช้สิ่งนี้:
    ใส่รหัสถ้า (OrderType () == OP_BUY) {ถ้า (ประมูล gt; OrderOpenPrice () TakeProfit1) {OrderClose (12345, 0.5, ประมูล, 2); } if (Bid gt; OrderOpenPrice () TakeProfit2) {OrderClose (12345, 0.5, Bid, 2); }} ปัญหาที่ชัดเจนคือเมื่อราคามาถึง TakeProfit1 ของฉันมันจะพยายามปิดทุกเห็บใหม่ในที่สุดก็ปิดคำสั่งทั้งหมด มีวิธีที่จะทำสิ่งนี้เพียงครั้งเดียวหรือไม่?

    ฉันรู้ว่าฉันสามารถเปิดคำสั่งแยกกันสองคำโดยมีผลกำไรต่างกัน แต่ฉันต้องการเรียนรู้วิธีการทำมันแตกต่างกันหากมีวิธีอื่น ฉันชอบความคิดที่จะซ่อนกำไรจากนายหน้า ความช่วยเหลือหรือคำแนะนำใด ๆ ที่ชื่นชม

  2. #2

    Quote Originally Posted by ;
    ปัญหาที่ชัดเจนคือเมื่อราคามาถึง TakeProfit1 ของฉันมันจะพยายามปิดทุกเห็บใหม่ในที่สุดก็ปิดการสั่งซื้อทั้งหมด มีวิธีที่จะทำสิ่งนี้เพียงครั้งเดียวหรือไม่? ฉันรู้ว่าฉันสามารถเปิดคำสั่งแยกกันสองคำโดยมีผลกำไรต่างกัน แต่ฉันต้องการเรียนรู้วิธีการทำมันแตกต่างกันหากมีวิธีอื่น ฉันชอบความคิดที่จะซ่อนกำไรจากนายหน้า ความช่วยเหลือหรือคำแนะนำใด ๆ ที่ชื่นชม
    //----- เฮ้ trumpjr ...... ใช้ orderselect เพื่อเลือกคำสั่ง ..... ใช้ orderlots () ตัวกรอง .... ด้านล่างเป็นเพียงตัวอย่างคร่าวๆอย่างรวดเร็ว .... h/- --- รหัสที่แทรกสำหรับ (int i = Orderstotal () - 1; i gt; = 0; i--) {OrderSelect (i, SEL_BY_POSITION, MODE_TRADES); ถ้า (OrderSymbol ()! = Symbol ()) ดำเนินการต่อ; if (OrderLots () gt; = 1)/ตัวกรอง orderlots {ถ้า (OrderType () == OP_BUY) {ถ้า (ประมูล gt; OrderOpenPrice () TakeProfit1) {OrderClose (OrderTicket (), 0.5, ราคาเสนอ, 0, CLR_NONE ); }}

  3. #3

    Quote Originally Posted by ;
    ฉันต้องการปิดคำสั่งซื้อในระดับต่างๆ ตัวอย่างฉันปิดครึ่งหนึ่งของคำสั่งของฉันที่ takeprofit1 และส่วนที่เหลือที่ takeprofit2 โดยใช้สิ่งนี้: ใส่รหัสถ้า (OrderType () == OP_BUY) {ถ้า (ประมูล gt; OrderOpenPrice () TakeProfit1) , 2); } if (Bid gt; OrderOpenPrice () TakeProfit2) {OrderClose (12345, 0.5, Bid, 2); }} ปัญหาที่ชัดเจนคือเมื่อราคาถึง TakeProfit1 ของฉันมันจะพยายามปิดทุกเห็บใหม่ในที่สุดก็ปิด ...
    เพียงแค่ใช้คำสั่งซื้อแยกกันสองคำ การแยกคำสั่งซื้อหลังจากเปิดแล้วเป็นความเจ็บปวดในตูดและต้องติดตามคำสั่งซื้อในปัจจุบันและมองหาตั๋วที่สร้างขึ้นใหม่ ฯลฯ มันทำได้ทั้งหมด แต่ถ้าคุณติดหลังจากพิมพ์รหัสด้านบนเท่านั้น ดีที่สุดที่จะปล่อยวางตอนนี้และบันทึกไว้สำหรับอนาคตเมื่อคุณสามารถเขียนโค้ดได้ดีขึ้น เพียงแค่ใช้สองคำสั่งที่แยกจากกันและต่อกับชีวิตของคุณ มิฉะนั้นเราจะเป็นคนที่เขียนรหัสให้คุณและคุณจะไม่ทำอะไรเพื่อตัวคุณเอง

  4. #4
    การปิดคำสั่งซื้อเป็นส่วนหนึ่งสำหรับผู้ทำรหัสระดับสูง

  5. #5
    คุณต้องติดตามแต่ละออเดอร์ผ่านหมายเลขเวทย์มนตร์ที่ไม่ซ้ำกันเพื่อจัดการตำแหน่งเป็นชิ้น ๆ ทันทีที่คุณปิดคำสั่งเปิดที่กำหนดบางส่วนตั๋วคำสั่งซื้อจะเปลี่ยนจากนั้นคุณจะต้องดึงหมายเลขตั๋วใหม่ หมายเลขตั๋วเก่าเพิ่งถูกยกเลิก ในการรับหมายเลขตั๋วใหม่และเพื่อควบคุมคำสั่งเปิดที่เหลืออยู่บางส่วนคุณต้องดึงหมายเลขตั๋วตามหมายเลขเวทย์มนตร์ หมายเลขเวทย์มนตร์ที่กำหนดให้กับคำสั่งซื้อจะไม่เปลี่ยนแปลงเมื่อมีการปิดการแยกคำสั่งซื้อหลายครั้งดังนั้นคุณยังสามารถติดตามวงจรการสั่งซื้อเดิมได้

  6. #6
    หมายเลขเวทย์มนตร์นั้นไม่ซ้ำกับการสั่งซื้อ หมายเลขมายากลเดียวกัน (ปกติ) จะถูกกำหนดให้กับทุกคำสั่งที่เปิดโดย EA อาจมีคำสั่งซื้อจำนวนมากด้วยหมายเลขเวทย์มนตร์เดียวกัน ข้อเสนอแนะของคุณจะไม่ทำงาน

  7. #7
    มีวิธีง่าย ๆ ในการทำเช่นนี้? ชุดแรกของการหยุดจะต้องเข้มงวดมากขึ้นตาม Fifo สมมติว่า codition ฉันซื้อ 2 คำสั่งแยกต่างหาก .... lot A และ lot B สำหรับ lotA ฉันต้องการ SL-A ที่ 30 pips และ TP-A ที่ 30pips สำหรับ lotB ฉันต้องการ SL-B ที่ 50 pips และ TP-B เป็น 50 pips ฉันคิดว่าฉันจะต้องปิดผ่านหมายเลขตั๋วและใช้การสูญเสียที่ซ่อนอยู่เนื่องจากนายหน้าซื้อขายของฉันปิดตำแหน่งทั้งหมดที่ SL TP ใด ๆ ดูเหมือนว่าง่าย แต่ฉันยังใหม่ในการเข้ารหัส และฉันกำลังขับรถด้วยตนเองถั่วมีตัวอย่างของรหัสดังกล่าวเพื่อให้ฉันสามารถมองเห็นวิธีการทำงาน

  8. #8
    อะไรก็ตามที่นอกเหนือจากการทำกำไรที่เกิดขึ้นจริงในคำสั่งจะเป็นจริงดังนั้นคุณจะต้องคำนวณลำดับที่สองของคุณในลูป OrderSelect ของคุณ: ใส่รหัสถ้า ((OrderType () == OP_BUY) (OrderSymbol () == สัญลักษณ์ ( )) (OrderMagicNumber () == MagicNumber)) {ถ้า (OrderLots () = gt; 1 (ราคา = gt; OrderTakeProfit () - (จุด TakeProfitA))) {double dNewLotSize = NormalizeDouble (OrderLots ()2, 2 ); if (! OrderClose (OrderTicket (), dNewLotSize, Bid, 3, Violet)) พิมพ์ (ข้อผิดพลาด OrderClose, GetLastError ()); อื่นพิมพ์ (OrderClose - OrderTicket ()); }}

  9. #9
    ขอบคุณมากที่สละเวลาในการโพสต์ข้อความนี้มีปัญหาในการแปลไวยากรณ์ภายในลูป if if ความแตกต่างระหว่าง LotA และ Lot B อย่างไร หรือมันคือสมมติว่า TakeProfit A ต้องเกิดขึ้นก่อนเพื่อตรวจสอบ gt; บรรทัดของโค้ดนี้กำลังทำอะไร ใส่รหัสคู่ dNewLotSize = NormalizeDouble (OrderLots ()2, 2); ฉันคิดว่าสิ่งนี้จะต้องเกิดขึ้นโดยเลือกปิดผ่านหมายเลขตั๋ว แต่ถ้าวงของคุณดูเหมือนว่าจะหลีกเลี่ยงปัญหานั้นฉันแค่มีปัญหาในการแปล

  10. #10
    สิ่งนี้ทำงานเกี่ยวกับหมายเลขตั๋วได้อย่างไร

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

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