อีเลียนที่พร้อมใช้งานเกือบหมดรหัสทำงานสำหรับคำสั่งซื้อ แต่ไม่ใช่คำสั่งซื้อขาย
Results 1 to 7 of 7

Thread: อีเลียนที่พร้อมใช้งานเกือบหมดรหัสทำงานสำหรับคำสั่งซื้อ แต่ไม่ใช่คำสั่งซื้อขาย

  1. #1
    สวัสดีทุกคน.

    ฉันใหม่ในฟอรัมนี้ แต่ไม่ใช่เรื่องใหม่สำหรับการซื้อขายด้วยตนเองและอีเอ ฉันยินดีที่จะเห็นกิจกรรมใน thaitradeforex และรอคอยที่จะทำความรู้จักกับคุณมากขึ้น

    ฉันเพียงเกี่ยวกับพร้อมกับ EA ของฉันเพียงเล็กน้อย แต่ติดอยู่ในการเข้ารหัส SL ordermodify สำหรับธุรกิจการค้า SHORT

    สิ่งที่ฉันพยายามทำคือ;
    เมื่อราคาถึง 20pips กำไร: ปรับ SL จาก -40pip ไป -20pips (ลด SL ลงครึ่งหนึ่ง)
    เมื่อราคาถึง 40 pips profit: Trailing Stop เตะเข้า (Break even )

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

    นี่คือรหัส:

    แทรกรหัสใหม่สองครั้ง; {if ((Bid-OrderOpenPrice ()) gt; = 200 * Point) newSL = OrderOpenPrice () - 200 * จุด; if ((Bid-OrderOpenPrice ()) gt; = 400 * Point newSL = Bid- (TrailingStop * Point); {newSL = NormalizeDouble (newSL, Digits); ถ้า OrderStatusLoss () OrderModify (OrderTicket (), OrderOpenPrice (), newSL, OrderTakeProfit (), 0, สีเขียว); ผลตอบแทน (0); }}} else/ไปที่ short position {if ((OrderOpenPrice () - Ask) gt; = 200 * Point) newSL = OrderOpenPrice () 200 * Point; ถ้า ((OrderOpenPrice () - ถาม) gt; = 400 * จุด) newSL = (TrailingStop * จุด) ถาม; {newSL = NormalizeDouble (newSL, Digits); ถ้า OrderStopLoss () == 0 OrderModify (OrderTicket (), OrderOpenPrice (), newSL, OrderTakeProfit (), 0, สีแดง); ผลตอบแทน (0); }}}
    ขอบคุณล่วงหน้า,
    Oddvin

  2. #2

    Quote Originally Posted by ;
    ถ้า ((OrderOpenPrice () - ถาม) gt; = 200 * จุด) newSL = OrderOpenPrice () 200 * จุด; ถ้า ((OrderOpenPrice () - ถาม) gt; = 400 * จุด) newSL = (TrailingStop * จุด) ถาม; {newSL = NormalizeDouble (newSL2, Digits); ถ้า OrderStopLoss () == 0 OrderModify (OrderTicket (), OrderOpenPrice (), newSL, OrderTakeProfit (), 0, สีแดง); ผลตอบแทน (0); }
    บางทีนี่อาจเป็นข้อผิดพลาดและต้องเป็นแบบนี้: แทรกโค้ด newSL = NormalizeDouble (# 91; color = Red # 93; newSL # 91;color # 93 ;, Digits); PS: โปรดใส่รหัสของคุณลงในแท็ก CODE เมื่อโพสต์ที่นี่ในฟอรัมเพื่อรักษารูปแบบไว้ นอกจากนี้ยังถือว่าเป็นรูปแบบที่ไม่ถูกต้อง (readybility ไม่ดี) เพื่อใช้แบบฟอร์มสั้น ๆ สำหรับหนึ่งบรรทัดถ้าโครงสร้าง แม้ว่าจะได้รับอนุญาตให้ออกจากวงเล็บออกไปคุณควรทำอ่านรหัสของคุณชอบและสม่ำเสมอใช้ไวยากรณ์ยาว

  3. #3
    7bit ขอขอบคุณสำหรับการสังเกตของคุณ แต่น่าเสียดายที่มันเป็นความผิดพลาดในการโพสต์ของฉัน แต่ไม่ใช่เหตุผลที่ทำให้เกิดข้อผิดพลาดในการสั่งซื้อทางโทรศัพท์ SELL สิ่งที่เกิดขึ้นค่อนข้างแปลก; (SL ที่ถูกต้อง) จะทำการปรับเปลี่ยนและลบ SL ทั้งหมด เมื่อราคาถึงเป้าหมายแรก ( 20pip) ในความโปรดปรานของฉันจะเพิ่ม SL ใหม่และเมื่อราคาไป bacwards จะเอา SL อีกครั้ง เกี่ยวกับความคิดเห็นอื่น ๆ ของคุณฉันค่อนข้างใหม่ในการเขียนโค้ดและฟอรัม forex ด้วยเช่นกันดังนั้นโปรดแก้ตัวถ้าฉันไม่ปฏิบัติตามจรรยาบรรณที่พบบ่อยในฟอรัม คุณหมายความว่าฉันควรโพสต์รหัส EA ทั้งหมดหรือไม่? ขอขอบคุณสำหรับความช่วยเหลือของคุณ

  4. #4

    Quote Originally Posted by ;
    คุณหมายความว่าฉันควรโพสต์รหัส EA ทั้งหมดหรือไม่? ขอขอบคุณสำหรับความช่วยเหลือของคุณ
    เป้าหมายช่วยให้คุณสามารถแก้ปัญหานี้ได้สำเร็จ อันดับแรกคุณควรเรียนรู้การใช้งานฟังก์ชัน Print () อย่างละเอียดนี่เป็นเพื่อนที่สำคัญที่สุดของคุณเมื่อมีการดีบัก (ที่คุณคิดว่าคอมพิวเตอร์จะไปเมื่อทำตามโค้ด) และพิมพ์ในแต่ละขั้นตอนทุกตัวแปรที่อาจมีอิทธิพลเพื่อให้แน่ใจว่าคอมพิวเตอร์ไม่แน่นอนว่าคุณคิดว่าจะทำอย่างไร ทำให้มันเพื่อให้มันอย่างแท้จริงบอกคุณว่ามันคือสิ่งที่ทำและสิ่งที่เกิดขึ้นและเมื่อมันจะดำเนินการนี้ได้อย่างรวดเร็วจะแสดงให้คุณเห็นว่าปัญหาคืออะไร แทรกรหัสพิมพ์ (ป้อนไว้เป็นอันดับสองหากสาขา); พิมพ์ (ใบสั่งซื้อมี SL นี้:, OrderStopLoss ()); พิมพ์ (newSL ใหม่มีมูลค่านี้: newSL); พิมพ์ (โทร OrderModify () ด้วยค่าเหล่านี้: newSL, ... , ... );

  5. #5
    ขอขอบคุณสำหรับเคล็ดลับและข้อมูลการผลิตของคุณ ฉันเล่นกับ tweakings บางใช้ไม่ได้และเกือบจะให้ในฮ่า ๆ จากนั้นฉันก็ตระหนักว่าอีเอเริ่มรับรู้ค่าเอสแอล (สำหรับใบสั่งขาย) เป็นศูนย์ดังนั้นจึงแก้ไขลำดับโดยไม่มี SL หลังจากวางบรรทัดนี้ไว้ด้านบนแล้ว: newSL = OrderStopLoss (); ปัญหาหายไป ฉันแม้แต่จัดการการนำ TrailingStep ลงในโค้ด ไม่มีสิ่งที่ใหญ่ แต่สำหรับ coder newbie เช่นฉันมันเป็นความสำเร็จที่ดีและมีประโยชน์มาก :-) NEW CODE: ใส่รหัสอื่น/ไปที่ตำแหน่งสั้น {newSL = OrderStopLoss (); if ((OrderOpenPrice () - Ask) gt; 200 * Point) newSL = OrderOpenPrice () (200 * จุด); ถ้า ((OrderOpenPrice () - ถาม) gt; 400 * จุด) newSL = ถาม (จุด * TrailingStop); {newSL = NormalizeDouble (newSL, Digits); ถ้า ((OrderStopLoss () - (TrailingStep * จุด)) gt; newSL) || (OrderStopLoss () == 0)) OrderModify (OrderTicket (), OrderOpenPrice () newSL, OrderTakeProfit (), 0, Red); ผลตอบแทน (0); ฉันไม่รู้ว่าทำไมต้องเป็นคำสั่งซื้อขาย แต่ดูเหมือนจะทำงานได้อย่างราบรื่น

  6. #6

    Quote Originally Posted by ;
    ฉันไม่รู้ว่าทำไมต้องเป็นคำสั่งซื้อขาย แต่ดูเหมือนจะทำงานได้อย่างราบรื่น
    เนื่องจากการหยุดการขาดทุนของ 0 หมายถึงไม่มีการหยุดการขาดทุน และเมื่อเปรียบเทียบราคาปัจจุบันกับการหยุดขาดทุนในปัจจุบันแล้ว 0 มักจะมีขนาดเล็กกว่าราคาสำหรับคำสั่งซื้อ แต่เมื่อคุณมีคำสั่งขายแล้ว 0 จะหมายถึงการหยุดเป็นอย่างสมบูรณ์ในด้าน * * อื่น ๆ (trailed แล้วไกลเกินไป) ดังนั้นจึงไม่เคยจะติดตามมัน คุณจำเป็นต้องจัดการ 0 สำหรับการสั่งซื้อแบบแยกต่างหากสำหรับใบสั่งซื้อ 0 อยู่ทางด้านขวาของการซื้อขายแล้ว ฉันไม่เห็นรหัสเมื่อดูรหัสของคุณแม้ว่าฉันจะมีปัญหานี้มาหลายเดือนแล้ว ฉันแก้ไขได้ทันทีและตลอดไปในห้องสมุดของฉันของการใช้งานทั่วไปและตั้งแต่นั้นไม่เคยคิดเกี่ยวกับมันอีกต่อไป

  7. #7
    คุณมีสิทธิ์ถูกต้อง มันก็ทำให้รู้สึกเมื่อฉันคิดว่าผ่านมัน รู้สึกดีมากที่ได้แก้ปัญหา

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

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