ขอคำแนะนำหน่อยครับ พอดีทำ PipStep ที่ 500 แล้ว order จะเปิด
- อยากได้ เมื่อเปิดครั้งต่อไปให้ Multi_PipStep *1.5เท่า ไปเรื่อยๆ ต้องเขียนยังไงหรอครับ...งมอยู่นานแล้วครับ ผมลองเอาโค๊ดมาแก้เองครับ
void OnTick()
{
ob();
//------------------
if(AllProfit_Buy()+AllProfit_Sell() >= closeallprofit_port)
{
double all_p = AllProfit_Buy()+AllProfit_Sell();
Print("Close All Profit (all orders) : "+DoubleToStr(all_p,2));
Close_Buy();
Close_Sell();
}
//----
//---
if(Count_Trade_by_side(OP_BUY)+Count_Trade_by_side(OP_SELL)<1)
{
if(Trade_direction == OP_BUY){OpenBuy(Lot);}
if(Trade_direction == OP_SELL){OpenSell(Lot);}
}
//--------------------
double spread_ = MarketInfo(NULL,MODE_SPREAD);
if(Count_Trade_by_side(OP_SELL)<1 && check_pipBuy()-spread_>=0 && Count_Trade_by_side(OP_BUY) >0)
{
if(Count_Trade_by_side(OP_SELL) < maxorder){OpenSell(Lot);}
}
if(Count_Trade_by_side(OP_BUY)<1 && check_pipSell()-spread_ >=0 && Count_Trade_by_side(OP_SELL) >0)
{
if(Count_Trade_by_side(OP_BUY) < maxorder){OpenBuy(Lot);}
}
//--------------------
double spread = MarketInfo(NULL,MODE_SPREAD)*digit;
for(int i=OrdersTotal();i>=0;i--)
{
bool chk = OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber() == MagicNumber)
if(OrderSymbol()==Symbol())
{
double opprice = OrderOpenPrice();
int tick = OrderTicket();
double _lot = OrderLots();
int kkt = StrToInteger(OrderComment());
if(OrderType()==OP_BUY )
{
if((Bid - (opprice-spread)) <= (-pipstep*digit))
if(chk_ticket(tick) && Count_Trade_by_side(OP_BUY) < maxorder )
{
double lot_buy = NormalizeDouble(_lot+Lot_multiply,2);
if(lot_buy > MaxLot){lot_buy = NormalizeDouble(_lot+Multi_Maxlot,2);}
ticket = OrderSend(Symbol(),OP_BUY,lot_buy,Ask,3,0,0,IntegerToString(tick),MagicNumber,0,clrGreen);
}
}
//----
if(OrderType()==OP_SELL && Count_Trade_by_side(OP_SELL) < maxorder )
{
if((opprice-spread) - Ask <= (-pipstep*digit))
if(chk_ticket(tick))
{
double lot_sell = NormalizeDouble(_lot+Lot_multiply,2);
if(lot_sell > MaxLot){lot_sell = NormalizeDouble(_lot+Multi_Maxlot,2);}
ticket = OrderSend(Symbol(),OP_SELL,lot_sell,Bid,3,0,0,IntegerToString(tick),MagicNumber,0,clrRed);
}
}
}
}