EA-Help ตำแหน่งปิด
หน้า 1 จาก 1002 12 ล่าสุดล่าสุด
Results 1 to 10 of 14

Thread: EA-Help ตำแหน่งปิด

  1. #1
    ฉันจะบ้า! ฉันไม่รู้ว่าอะไรผิดปกติ!
    ฉันจำเป็นต้องปิดตำแหน่งที่เปิด (ซื้อหรือขาย) หลังจากที่แถบใหม่อยู่ด้านล่างแถบด้านล่างหากตำแหน่งคือการซื้อหรือปิดเมื่อปิดแถบถัดไปภายใต้แถบปิด earler แล้วปิดการขาย
    โปรดช่วยฉันด้วยรหัสนี้!
    ขอบคุณ

    http://iv.pl/images/66713794647321163687.jpg

    ใส่รหัสถ้า (iClose (NULL, PERIOD_M30,0) lt; iClose (NULL, PERIOD_M30,1)) CloseBuy = 1; if (iClose (NULL, PERIOD_M30,0) gt; iClose (NULL, PERIOD_M30,1)) CloseSell = 1; if (OrdersTotal () gt; 0) {สำหรับ (i = 1; ilt; = OrdersTotal (); i )/วนรอบการค้นหาคำสั่งซื้อ {if (OrderSelect (i-1, SELECT_BY_POS) == จริง)/ถ้า ถัดไปสามารถใช้ได้ {if (OrderMagicNumber () == MagicNumber1) {int halt1 = 1;} ถ้า (OrderMagicNumber () == MagicNumber2) {int halt2 = 1;}}}}/เปิดซื้อโดยตรงหาก (BarOneUp == 1BarTwoUp == 1BarThreeUp == 1halt1! = 1) {int openbuy = คำสั่งซื้อส่ง (สัญลักษณ์ (), OP_BUY, จำนวนมาก, ถาม, Slippage, slb, tpb, คำสั่งซื้อเทียน, MagicNumber1,0, สีน้ำเงิน); ถ้า (ReverseClose == จริง) closesell = 1; }/เปิดขายโดยตรงถ้า (BarOneDown == 1BarTwoDown == 1BarThreeDown == 1halt2! = 1) {int opensell = OrderSend (สัญลักษณ์ (), OP_SELL, จำนวนมาก, ประมูล, Slippage, sls, tps, คำสั่งขายเทียน) MagicNumber2 , 0, กรีน); ถ้า (ReverseClose == จริง) closebuy = 1; ....... ถ้า (closesell == 1 || closebuy == 1) {//เริ่มต้นถ้า (OrdersTotal () gt; 0) {สำหรับ (i = 1; ilt; = OrdersTotal (); i ) {/วนการค้นหาในคำสั่งซื้อถ้า (OrderSelect (i-1, SELECT_BY_POS) == จริง) {//หากรายการถัดไปสามารถใช้ได้หาก (OrderMagicNumber () == MagicNumber1closebuy == 1 CloseBuy == 1) {OrderClose (OrderTicket () , OrderLots (), ประมูล, Slippage, CLR_NONE);} ถ้า (OrderMagicNumber () == MagicNumber2closesell == 1 CloseSell == 1 1 {OrderClose (OrderTicket (), OrderLots (), OrderLots (), OrderLots (CLR_NONE); }}}}}}

  2. #2
    บางทีคุณมีวิธีแก้ปัญหาอื่นที่จะปิดตำแหน่งนี้ ...

  3. #3

    Quote Originally Posted by ;
    บางทีคุณมีวิธีแก้ปัญหาอื่นที่จะปิดตำแหน่งนี้ ...
    ตามคำจำกัดความคุณจะไม่สามารถปิดแถบปัจจุบันได้จนกว่าจะปิด ฉันไม่รู้ว่าคุณกำลังตรวจสอบหนึ่งครั้งต่อบาร์หรือแต่ละเห็บ คุณลองใช้แล้ว: ใส่รหัสถ้า (iClose (NULL, PERIOD_M30,1) lt; iClose (NULL, PERIOD_M30,2)) CloseBuy = 1; if (iClose (NULL, PERIOD_M30,1) gt; iClose (NULL, PERIOD_M30,2)) CloseSell = 1; ถ้านั่นไม่ได้ผลสำหรับคุณให้โพสต์ EA ทั้งหมดและฉันจะดูมัน

  4. #4
    Quote Originally Posted by ;
    คุณลองใช้แล้ว: ใส่รหัสถ้า (iClose (NULL, PERIOD_M30,1) lt; iClose (NULL, PERIOD_M30,2)) CloseBuy = 1; if (iClose (NULL, PERIOD_M30,1) gt; iClose (NULL, PERIOD_M30,2)) CloseSell = 1; ถ้านั่นไม่ได้ผลสำหรับคุณให้โพสต์ EA ทั้งหมดและฉันจะดูมัน
    มันจะดีกว่าตอนนี้มันเป็นสถานะปิดก่อนหน้านี้ปิดเฉพาะเมื่อหยุดขาดทุน แต่ฉันไม่ต้องการ 100% ฉันมีสิ่งนี้: รหัสแทรก extern double lots = 0.1; extern int Slip = 5; ภายนอกคู่ TakeProfit = 500; StopLoss คู่ภายนอก = 50; extern bool ReverseClose = true;/ ----------------------------------------------- ------------------- /| ฟังก์ชั่นเริ่มต้นผู้เชี่ยวชาญ/ ----------------------------------------------- ------------------- int init () {//----/---- return (0); }/ ---------------------------------------------- -------------------- /| ฟังก์ชั่นผู้เชี่ยวชาญ/ ----------------------------------------------- ------------------- int deinit () {//----/---- return (0); }/ ---------------------------------------------- -------------------- /| ฟังก์ชันเริ่มผู้เชี่ยวชาญ/ ----------------------------------------------- ------------------- int start () {int err = GetLastError (); ตัวเลขหลัก = MarketInfo (EURUSD, MODE_DIGITS); ถ้า (ดิจิต == 5) {int StopMultd = 10;} else {StopMultd = 1;} int Slippage = สลิป * StopMultd; int MagicNumber1 = 2001, MagicNumber2 = 2002, i, closesell = 0, closebuy = 0, CloseBuy = 0, CloseSell = 0; double TP = NormalizeDouble (TakeProfit * StopMultd, Digits); double SL = NormalizeDouble (StopLoss * StopMultd, Digits); double slb = NormalizeDouble (Ask-SL * Point, Digits); double sls = NormalizeDouble (Bid SL * Point, Digits); double tpb = NormalizeDouble (Ask TP * Point, Digits); double tps = NormalizeDouble (Bid-TP * Point, Digits);/------------------------------------------------ ------------------- /ตรวจสอบคำสั่งเปิด///----------------------- -------------------------------------------- ถ้า (iOpen (NULL , PERIOD_M30,1) lt; iClose (NULL, PERIOD_M30,1)) int BarOneUp = 1; if (iOpen (NULL, PERIOD_M30,1) gt; iClose (NULL, PERIOD_M30,1)) int int BarOneDown = 1; if (iOpen (NULL, PERIOD_M30,2) lt; iClose (NULL, PERIOD_M30,2)) int barTwoUp = 1; if (iOpen (NULL, PERIOD_M30,2) gt; iClose (NULL, PERIOD_M30,2)) int int BarTwoDown = 1; if (iOpen (NULL, PERIOD_M30,3) lt; iClose (NULL, PERIOD_M30,3)) int barThreeUp = 1; if (iOpen (NULL, PERIOD_M30,3) gt; iClose (NULL, PERIOD_M30,3)) int int BarThreeDown = 1; if (iClose (NULL, PERIOD_M30,1) lt; iClose (NULL, PERIOD_M30,2)) CloseBuy = 1; if (iClose (NULL, PERIOD_M30,1) gt; iClose (NULL, PERIOD_M30,2)) CloseSell = 1; if (OrdersTotal () gt; 0) {สำหรับ (i = 1; ilt; = OrdersTotal (); i )/วนรอบการค้นหาคำสั่งซื้อ {if (OrderSelect (i-1, SELECT_BY_POS) == จริง)/ถ้า ถัดไปสามารถใช้ได้ {if (OrderMagicNumber () == MagicNumber1) {int halt1 = 1;} ถ้า (OrderMagicNumber () == MagicNumber2) {int halt2 = 1;}}}} RefreshRates (); แสดงความคิดเห็น (BarOneUp, BarOneDown, BarTwoUp, BarTwoDown, BarThreeUp, BarThreeDown);/------------------------------------------------ -------------------------------------------------- ---/เกณฑ์การเปิด//------------------------------------------------ -------------------------------------------------- --- ถ้า (ชั่วโมง () gt; 7 21gt; ชั่วโมง ()) {RefreshRates ();/เปิดให้ซื้อโดยตรงถ้า (BarOneUp == 1BarTwoUp == 1BarThreeUp == 1halt1! = 1) {int openbuy = คำสั่งซื้อ (สัญลักษณ์ (), OP_BUY, มากมาย, ถาม, 1,0, tpb, ข้อบกพร่องเทียน, คำสั่งซื้อ MagicNumber1, 0, สีฟ้า); ถ้า (ReverseClose == จริง) closesell = 1; }/เปิดขายโดยตรงถ้า (BarOneDown == 1BarTwoDown == 1BarThreeDown == 1halt2! = 1) {int opensell = OrderSend (สัญลักษณ์ (), OP_SELL, จำนวนมาก, ประมูล, 1,0, tps, บั๊กเทียนเพื่อขาย, MagicNumber2 , 0, กรีน); ถ้า (ReverseClose == จริง) closebuy = 1; } RefreshRates ();/------------------------------------------------ -------------------------------------------------/หลักเกณฑ์การปิด/--------------------------------------------- -------------------------------------------------- if (closesell == 1 || closebuy == 1) {//เริ่มต้น (OrdersTotal () gt; 0) {สำหรับ (i = 1; ilt; = OrdersTotal (); i ) {//วนรอบการค้นหาคำสั่งซื้อหาก (OrderSelect (i-1, SELECT_BY_POS) == จริง) {//หากรายการถัดไปสามารถใช้ได้หาก (OrderMagicNumber () == MagicNumber1closebuy == 1CloseBuy == 1) {OrderClose (OrderTicket (), OrderLots (), OrderLots (), OrderLots (), OrderLots () , CLR_NONE); } if (OrderMagicNumber () == MagicNumber2closesell == 1CloseSell == 1) {OrderClose (OrderTicket (), OrderLots (), OrderLots (), เสนอราคา, Slippage, CLR_NONE); OrderClose (OrderTicket (), OrderLots (), OrderLots (), OrderLots (), OrderLots () ; } } } } } } }//หยุด /-------------------------------------- ------------------- zamykanie ---------------------------- return ( 0); ฉันจะพอใจ 100% เมื่อ EA ของฉันทำเช่นนี้:

  5. #5
    if (iClose (NULL, PERIOD_M30,1) lt; iClose (NULL, PERIOD_M30,2)) CloseBuy = 1; if (iClose (NULL, PERIOD_M30,1) gt; iClose (NULL, PERIOD_M30,2)) CloseSell = 1; ควรเป็น .... ถ้า (iClose (NULL, PERIOD_M30,1) lt; iOpen (NULL, PERIOD_M30,1)) CloseBuy = 1; ถ้า (iClose (NULL, PERIOD_M30,1) gt; iOpen (NULL, PERIOD_M30,1)) CloseSell = 1; อย่างน้อยนั่นคือสิ่งที่ฉันคิดว่าอาจผิด บันทึกประจำวันของคุณแสดง 'ข้อผิดพลาด' เมื่อคุณคิดว่าควรจะปิดหรือไม่?

  6. #6

    Quote Originally Posted by ;
    if (iClose (NULL, PERIOD_M30,1) lt; iClose (NULL, PERIOD_M30,2)) CloseBuy = 1; if (iClose (NULL, PERIOD_M30,1) gt; iClose (NULL, PERIOD_M30,2)) CloseSell = 1; ควรเป็น .... ถ้า (iClose (NULL, PERIOD_M30,1) lt; iOpen (NULL, PERIOD_M30,1)) CloseBuy = 1; ถ้า (iClose (NULL, PERIOD_M30,1) gt; iOpen (NULL, PERIOD_M30,1)) CloseSell = 1; อย่างน้อยนั่นคือสิ่งที่ฉันคิดว่าอาจผิด
    ตอนนี้มันแย่กว่านั้นอาจจะไม่เป็นไร แต่ฉันคิดว่าปัญหาคือราคา ฉันจำเป็นต้องปรับราคาตามปกติหรือไม่ทำไมเขาถึงสูญเสียแท่งเหล็กปิด http://iv.pl/images/60300269086430139032.jpg

  7. #7
    ใช่ราคาจะต้องเป็น 'ปกติ' เพียงเพื่อให้ MT4 มีความสุข ERR_INVALID_PRICE_PARAM (4107), ERR_INVALID_TICKET (4108) คุณได้รับข้อผิดพลาดมากมาย ... ต้องการคุณพบว่าทำไมเหตุผล 1 ข้อในการเลือกหมายเลขตั๋วที่ไม่ถูกต้องแม้ว่าฉันจะไม่ได้ตรวจสอบรหัสของคุณ

  8. #8
    ทำไมคุณมี .. ถ้า (OrderMagicNumber () == MagicNumber2closesell == 1CloseSell == 1 1) {OrderClose (OrderTicket (), OrderLots (), เสนอราคา, Slippage, CLR_NONE); OrderClose (), OrderLots (), ถามคำถาม () เลื่อนหลุด, CLR_NONE); } นั่นไม่ใช่การพยายามปิดตั๋วใบเดิมหรือเปล่า! (นั่นคือเหตุผลที่ฉันเกลียดโค้ดที่ขยายเกินกว่าจุดสิ้นสุดของหน้าจอ ... ไม่สามารถดูว่ามีอะไรอยู่และจะพลาดไป!)

  9. #9
    ฉันไม่เข้าใจคุณ closesell == 1 และ CloseSell == 1 ไม่ใช่ตัวแปรเดียวกัน

  10. #10
    ฉันเห็นว่าพวกเขาไม่เหมือนกัน (แต่สำหรับฉันนั่นคือการตั้งชื่อที่ไม่ดี ... เหมือนกัน) คุณมีเงื่อนไขตรงตามเงื่อนไข ... ถ้า (OrderMagicNumber () == MagicNumber2 closesell == 1CloseSell == 1) {OrderClose (OrderTicket (), OrderLots (), ประมูล, Slippage, CLR_NONE); OrderClose (OrderTicket (), OrderLots (), Ask, Sli ppage, CLR_NONE); } ดังนั้นสำหรับฉันการปิดคำสั่งที่ 2 พยายามที่จะปิดหมายเลขตั๋วเดียวกับการปิดคำสั่งที่ 1 หากฉันผิดฉันขอโทษที่ทำให้คุณเข้าใจผิด

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

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