如何解决基于利润的封闭订单
我正在尝试编写代码以在新开盘价低于/高于 300 点时打开新订单。然后在盈利时比较两个订单的利润,我同时关闭两个订单。如果没有,第二个订单损失超过 300 点,我将再次打开新订单。我将继续打开订单10次。 我想平仓的方式是:当开单总数超过3个时,我想比较第一个和最后一个开单的利润,如果低于利润,我先平仓。然后我将比较第二和第三个订单,如果它们低于利润,我将关闭它们,否则当它超过 300 点时我将创建新订单。请帮助我理解或编写此方法。提前致谢
void CloseallOrders()
{
if(AccountEquity()>AccountBalance())
{
for (int i=OrdersTotal()-1;i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TradES);
OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
}
}
}
void drawdown()
{
if (OrdersTotal()>=0)
{
for (int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,MODE_TradES);
if(OrderProfit())
{
if(OrderType==OP_BUY)
{
double ddBuy=0;
ddBuy= OrderOpenPrice()- (300*pips)
if(!ddBuy)continue;
{
if(Ask<=ddBuy)
{
int buyticketDD= OrderSend(Symbol(),(LotSize*1.5),Ask,NULL,MagicNumber,Green);
}
}
}
if(OrderType==OP_SELL)
{
double ddSell=0;
ddSell= OrderOpenPrice()+ (300*pips)
if(!ddSell)continue;
{
if(Bid>=ddSell)
{
int sellticketDD= OrderSend(Symbol(),1,Red);
}
}
}
}
}
CloseallOrders();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。