Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: ขอถามเรื่องการตั้งค่า stop loss ต่ออีกหน่อยนะครับ  (Read 10477 times)

mildassassin

  • Jr. Member
  • **
  • Posts: 59
ขออ้างอิงข้อมูลจากคุณ preeyada ได้ตอบไว้จากกระทู้ http://www.thaiforexea.com/index.php/topic,774.0.html

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,เติมค่า stop loss ที่ต้องการ,0,"",MAGICMA,0,Blue);
ตัวอย่างนะครับ
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-Point*10,0,"",MAGICMA,0,Blue);

Bid-Point*10 ตือ ค่า stop loss ที่เราต้องการให้ห่างออกไปอีกประมาณ 10 pip (เอา10 คูณ point) ครับผม

คำถามต่อไปก็คือว่า

ตรงที่คุณ preeyada ได้เน้นสีแดงเอาไว้น่ะครับ ตรงนี้จำเป็นมั๊ยครับว่าต้องเอาค่า bid หรือ ask มาทำการคำนวนกับค่า point น่ะครับ
ถ้าผมต้องการเปลี่ยนเอาค่าอย่างอื่นมาใส่แทนจะได้มั๊ยครับ เช่น เอาค่าของ iclose มาใส่ ถ้าสมมติใส่ได้นี่ต้องใส่ค่ายังไงครับ

อันนี้เป็นส่วนหนึ่งของ ea ที่ผมทำเองน่ะครับ แต่ทำจากเว็บ ea builder มาน่ะครับ

   //Sell
   if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
      if(!IsTrade) {
         //Check free margin
         if (AccountFreeMargin() < (1000 * Lots)) {
            Print("We have no money. Free Margin = ", AccountFreeMargin());
            return(0);
         }

         if (UseStopLoss) StopLossLevel = Var4; else StopLossLevel = 0.0;
         if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

         Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
         if(Ticket > 0) {
            if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
            Print("SELL order opened : ", OrderOpenPrice());
                if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
         } else {
            Print("Error opening SELL order : ", GetLastError());
         }
         }
         if (EachTickMode) TickCheck = True;
         if (!EachTickMode) BarCount = Bars;
         return(0);
      }
   }

   if (!EachTickMode) BarCount = Bars;

   return(0);
}

ถ้าอย่างในกรณีของ ea ของผมนี้ ต้องไปแก้ไขยังไงครับ
แต่พอดีผมลองเอาค่าของ Var4 มาใส่แทน ซึ่งเป็นตัวแปรที่เก็บค่าของ iclose ไว้น่ะครับ
ถ้าผมจะเปลี่ยนจาก Var4 มาใส่ iclose แบบนี้ได้มั๊ยครับ iClose(NULL, 0, Current + 2)
รบกวนผู้รู้ช่วยตอบทีนะครับ
ขอบคุณครับ  ;D

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
var4 เป็นตัวแปรที่มีการกำหนดค่าแล้วครับ การตั้งค่า SL  TP เราจะเอาค่าราคาตอนไหนมาตั้งก็ได้ครับ ขอแค่อย่างเดียวครับ เวลาที่ตั้งราคาที่เราจะเอามาตั้ง ขอให้อยู่ห่างจากราคาปัจจุบันตามที่โบรเกอร์กำหนดก็พอครับ  เช่น โบรเกอร์กำหนดว่าต้องตั้ง SL TP ให้มีระยะห่างจากราคาปัจจุบัน 10 จุดเราก็ต้องตั้งห่างออกไป 10 จุด ครับ ทีคุณเห็นเค้าเอา Ask  หรือ Bid มาบวกลบด้วยค่าต่างๆๆ นั่นเป็นการตั้ง SL tp ตอนที่เปิด เลยครับ แต่หากเราเปิด Order ไปแล้วจะตั้งให้ราคาปิดมีค่าเท่ากับราคาเปิดก็ได้ ตัวอย่างก็ EA ที่คำนวณ Triling Stop ไงครับ

สรุป คือ จะเอาค่าอะไรมาตั้งก็ได้ทั้งนั่นหละครับขออย่างเดียวให้ราคานั่นอยู่ห่างจากที่ โบรเกอร์กำหนดครับ