发一段能用的保本损代码,求10个金币
void BreakEven(string buyOrSell, double BreakEven){
bool succeed = false ;
inttry
= 0;
RefreshRates();
if(OrdersTotal() > 0)
{
if(BreakEven <= MarketInfo(Symbol(), MODE_STOPLEVEL) * Point)
{
Print("保本损设置小于StopLevel");
return;
}
else
{
for(int i = OrdersTotal() - 1; i >= 0; i--) //顺序排列,最后开的单子最远,在0的位置,所以是从最早开的单子往最后的方向找
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGICMA) //MAGIC时而统计时而不统计,高风险
{
if(buyOrSell == "buy")
{
if(OrderType() == OP_BUY)
{
if(NormalizeDouble((Bid - OrderOpenPrice()), Digits) >= NormalizeDouble(BreakEven/*2倍挂单间距*/ * Point, Digits))
{
if(OrderOpenPrice() - OrderStopLoss() > 0 || (OrderStopLoss() == 0))
{
if(NormalizeDouble(OrderStopLoss(), Digits) != NormalizeDouble(OrderOpenPrice(), Digits) + NormalizeDouble(MarketInfo(Symbol(), MODE_SPREAD), Digits) + NormalizeDouble(20 * Point, Digits))
{
//---价格从开盘价移动两个stoplevel=100点,则价格提高到开盘价+spread+20点=70点
succeed = OrderModify(OrderTicket(), NormalizeDouble(OrderOpenPrice(), Digits), NormalizeDouble(OrderOpenPrice(), Digits) + NormalizeDouble(MarketInfo(Symbol(), MODE_SPREAD), Digits) + NormalizeDouble(20 * Point, Digits), NormalizeDouble(OrderTakeProfit(), Digits), 0, Lime);
if(!succeed)
{
Print("多单保本损没有设置");
Sleep(200);
}
else
{
Print("多单保本损设置成功");
}
}
RefreshRates();
}
}
}
}
if(buyOrSell == "sell")
{
if(OrderType() == OP_SELL)
{
if(NormalizeDouble((OrderOpenPrice() - Ask), Digits) >= NormalizeDouble(BreakEven, Digits))
{
if((OrderOpenPrice() - OrderStopLoss() < 0) || (OrderStopLoss() == 0))
{
if(NormalizeDouble(OrderStopLoss(), Digits) != NormalizeDouble(OrderOpenPrice(), Digits) - NormalizeDouble(MarketInfo(Symbol(), MODE_SPREAD), Digits) - NormalizeDouble(20 * Point, Digits))
{
succeed = OrderModify(OrderTicket(), NormalizeDouble(OrderOpenPrice(), Digits), NormalizeDouble(OrderOpenPrice(), Digits) - NormalizeDouble(MarketInfo(Symbol(), MODE_SPREAD), Digits) - NormalizeDouble(20 * Point, Digits), NormalizeDouble(OrderTakeProfit(), Digits), 0, Lime);
if(!succeed)
{
Print("空单保本损没有设置");
Sleep(200);
}
else
{
Print("空单保本损设置成功");
}
}
RefreshRates();
}
}
}
}
}
}
}
}
}
}
小手一抖,积分到手! 相当不错,感谢无私分享精神! 学习了,不错 支持下 {:1_181:} 支持下 {:1_179:} {:1_179:} {:1_186:}
页:
[1]
2