Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: เรื่อง Lot ครับ  (Read 15023 times)

kusitnas

  • Newbie
  • *
  • Posts: 4
เรื่อง Lot ครับ
« on: พฤศจิกายน 09, 2012, 08:11:10 am »
ตอนนี้ ผมใช้ exness cent มันให้เปิดได้สูงสุดแค่ 1.0 Lot
แต่เราคำนวณแล้ว ว่า ให้เปิด 1.5 Lot จะเขียนลูปยังไง ให้เช็ค
และเปิดออกมา 2 ออเดอร์ครับ 1.0 Lot กับ 0.5 Lot
ขอบคุณครับ

weva1234

  • Jr. Member
  • **
  • Posts: 81
    • วิธีเทรด forex เทคนิคการลงทุน
Re: เรื่อง Lot ครับ
« Reply #1 on: พฤศจิกายน 09, 2012, 02:34:59 pm »
ตอนนี้ ผมใช้ exness cent มันให้เปิดได้สูงสุดแค่ 1.0 Lot
แต่เราคำนวณแล้ว ว่า ให้เปิด 1.5 Lot จะเขียนลูปยังไง ให้เช็ค
และเปิดออกมา 2 ออเดอร์ครับ 1.0 Lot กับ 0.5 Lot
ขอบคุณครับ

if (Lot > 1.0)

    double lot1  =  1.0;
    double lot2  =  Lot -1.0;
   
   OrderSend(Symbol(), OP_BUY,lot1   , Ask, 3, 0, 0, "", 0, 0, Green);
   OrderSend(Symbol(), OP_BUY,lot2   , Ask, 3, 0, 0, "", 0, 0, Green);


}

kusitnas

  • Newbie
  • *
  • Posts: 4
Re: เรื่อง Lot ครับ
« Reply #2 on: พฤศจิกายน 09, 2012, 03:06:17 pm »
ตอนนี้ ผมใช้ exness cent มันให้เปิดได้สูงสุดแค่ 1.0 Lot
แต่เราคำนวณแล้ว ว่า ให้เปิด 1.5 Lot จะเขียนลูปยังไง ให้เช็ค
และเปิดออกมา 2 ออเดอร์ครับ 1.0 Lot กับ 0.5 Lot
ขอบคุณครับ

if (Lot > 1.0)

    double lot1  =  1.0;
    double lot2  =  Lot -1.0;
   
   OrderSend(Symbol(), OP_BUY,lot1   , Ask, 3, 0, 0, "", 0, 0, Green);
   OrderSend(Symbol(), OP_BUY,lot2   , Ask, 3, 0, 0, "", 0, 0, Green);


}


อ้อ ขอโทษครับ
คือผมใช้การคำนวณ Lot ดังนี้ครับ

   Lots=NormalizeDouble(AccountFreeMargin()*MaxRisk/MarketInfo(Symbol(),MODE_MARGINREQUIRED),2);
   if (Lots<=MarketInfo(Symbol(),MODE_MINLOT)) Lots=MarketInfo(Symbol(),MODE_MINLOT);
   if (Lots>=MarketInfo(Symbol(),MODE_MAXLOT)) Lots=MarketInfo(Symbol(),MODE_MAXLOT);

แล้วพอมันเกิน Max Lot อยากให้โปรแกรมทำการคำนวณว่าต้อง เปิด กี่ครั้ง และเศษ ครับ

weva1234

  • Jr. Member
  • **
  • Posts: 81
    • วิธีเทรด forex เทคนิคการลงทุน
Re: เรื่อง Lot ครับ
« Reply #3 on: พฤศจิกายน 09, 2012, 04:13:00 pm »
ตอนนี้ ผมใช้ exness cent มันให้เปิดได้สูงสุดแค่ 1.0 Lot
แต่เราคำนวณแล้ว ว่า ให้เปิด 1.5 Lot จะเขียนลูปยังไง ให้เช็ค
และเปิดออกมา 2 ออเดอร์ครับ 1.0 Lot กับ 0.5 Lot
ขอบคุณครับ

if (Lot > 1.0)
{  
    double lot1  =  1.0;
    double lot2  =  Lot -1.0;
  
   OrderSend(Symbol(), OP_BUY,lot1   , Ask, 3, 0, 0, "", 0, 0, Green);
   OrderSend(Symbol(), OP_BUY,lot2   , Ask, 3, 0, 0, "", 0, 0, Green);


}


อ้อ ขอโทษครับ
คือผมใช้การคำนวณ Lot ดังนี้ครับ

   Lots=NormalizeDouble(AccountFreeMargin()*MaxRisk/MarketInfo(Symbol(),MODE_MARGINREQUIRED),2);
   if (Lots<=MarketInfo(Symbol(),MODE_MINLOT)) Lots=MarketInfo(Symbol(),MODE_MINLOT);
   if (Lots>=MarketInfo(Symbol(),MODE_MAXLOT)) Lots=MarketInfo(Symbol(),MODE_MAXLOT);

แล้วพอมันเกิน Max Lot อยากให้โปรแกรมทำการคำนวณว่าต้อง เปิด กี่ครั้ง และเศษ ครับ


double  LotMax = NormalizeDouble(MarketInfo(Symbol(),MODE_MAXLOT),2);
double  LotMin  = NormalizeDouble(MarketInfo(Symbol(),MODE_MINLOT),2);

 if (Lots > LotMax )
{
   int iLoop  =  NormalizeDouble(Lots/ LotMax,0) ;
   double  lots2  =  NormalizeDouble(Lots%LotMax,2);
  
for (int x = 0 ; x<iLoop  ; x++)
{
  OrderSend(Symbol(), OP_BUY,LotMax , Ask, 3, 0, 0, "", 0, 0, Green);
}
 
if (lots2   > 0.0)
{
  if (lots2   < LotMin  )
     OrderSend(Symbol(), OP_BUY,LotMin  , Ask, 3, 0, 0, "", 0, 0, Green);
  else
     OrderSend(Symbol(), OP_BUY,lots2    , Ask, 3, 0, 0, "", 0, 0, Green);
}

}
else
{
  if (Lots < LotMin )  Lots  = LotMin  ;
   OrderSend(Symbol(), OP_BUY,Lots  , Ask, 3, 0, 0, "", 0, 0, Green);
}
« Last Edit: พฤศจิกายน 09, 2012, 04:21:00 pm by weva1234 »

kusitnas

  • Newbie
  • *
  • Posts: 4
Re: เรื่อง Lot ครับ
« Reply #4 on: พฤศจิกายน 09, 2012, 05:35:26 pm »
เข้าใจละ ขอบคุณครับ