//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 25.04.2008 |//| Описание : Закрытие тех позиций, у которых убыток в валюте депозита |//| превысил некоторое значение |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//| pr - профит/убыток |//+----------------------------------------------------------------------------+voidClosePosBySizeLossInCurrency(stringsy="", intop=-1, intmn=-1, doublepr=0){inti, k=OrdersTotal();
if(sy=="0")sy=Symbol();
for(i=k-1; i>=0; i--){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)){if(OrderType()==OP_BUY || OrderType()==OP_SELL){if(mn<0 || OrderMagicNumber()==mn){if(OrderProfit()+OrderSwap()<-MathAbs(pr))ClosePosBySelect();
}}}}}}
但它允许按工具栏上的 "专家顾问 "按钮来停止专家顾问。
我想这是可以的,谢谢。 离开EA的参数不多,不会很困难。
使用ClosePosBySizeProfitInCurrency()函数的一个例子
特别是为了演示ClosePosBySizeProfitInCurrency()函数,我写了一个专家顾问。
e-CloseByProfitPosInCurrency,它只关闭那些存款货币的利润超过某个特定值的头寸。专家顾问可以只安装在一个图表上,也可以安装在几个图表上。您可以使用专家顾问的外部参数指定要关闭的头寸清单。
大家下午好。
伊戈尔,你是否有一个函数,当达到指定的损失时,以类似于ClosePosBySizeProfitInCurrency()的方式关闭损失的头寸。(或者,也许是一个综合的,可以指定盈利和亏损时的关闭)。
根据我的理解,我们可以简单地在OrderProfit() 的 参数pr 中设置--带减号,我们就会得到我们 所要的东西。
是否可以用积分来设置门槛(而不是用存款货币)?如果是,那么如何?(不建议使用 "获利 "和 "止损"。)
伊戈尔,你是否有一个函数,当达到指定的损失时,以类似于ClosePosBySizeProfitInCurrency()的方式关闭损失的头寸。(也可能是一个综合的,你可以指定在盈利和亏损的情况下关闭。)
不,我还没有这样的功能。然而,你可以重做ClosePosBySizeProfitInCurrency()。
我使它能够以正数(损失)和负数(带减号的利润)的形式传递损失。
根据我的理解,我们只需在OrderProfit() 的 参数pr 中设置--带减号,就能得到我们 所要的东西。
是否可以用积分来设置门槛(而不是用存款货币)?如果是,怎么做?(止盈和止损不是一个选项)
看看e-CloseByProfit 的代码。
ClosePositions()函数。
该函数关闭参数符合指定值的职位。
ClosePosFirstProfit()函数。
该函数按照一定的顺序关闭头寸,即先关闭有利可图的头寸,然后关闭所有其他头寸。要关闭的位置的更精确选择是由外部参数定义的。
ClosePosWithMaxProfitInCurrency()函数。
该功能以存款货币的最大正利润关闭一个头寸。也就是说,在五个仓位中,每个仓位的利润分别为-34、15、73、-90、41,利润为73个单位的存款货币的仓位将被关闭。使用外部参数来指定更准确的选择要关闭的位置。
如果CCI值高于100,则开立买入头寸,直到该值低于-100,当它低于-100时,则开立卖出头寸,直到它高于100。
对于你,迪马,我可以建议这个功能。
这个函数在买入时返回1,卖出时返回-1。买/卖条件如你所愿。你现在需要做的就是在每次打勾时做以下工作。
1.获取GetTradeSignal()的值。
2.如果收到的值=0,则不做任何事情。
如果收到的值>0,则关闭所有销售并购买。
4.如果获得的值<0,则关闭所有的购买并卖出。