ตอนนี้ ผมใช้ 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);
}