需要一个拖网专业人员的建议,即控制两个位置相互独立,如何实现? - 页 4 123456789 新评论 Alexandr Bryzgalov 2011.10.30 20:35 #31 charony: 在2次销售中,拖网应该使SL达到850。 我的价格接近950,不是手动交易。 如何在代码中解决这个问题? 它为什么要这样做?如果价格只达到899,那么Trall应该在50个点之外,所以应该在950左右。 [删除] 2011.10.30 21:02 #32 sanyooooook: 我为什么要这样做?如果价格只达到899,那么Trall应该在50个点之外,所以应该在950左右。 他在SL上关闭了它,从1sell开始 [删除] 2011.10.30 21:17 #33 让我们等待,看看是否有知道的人出现。 [删除] 2011.10.31 10:29 #34 难道没有人知道 Avals 2011.10.31 10:42 #35 charony: 难道没有人知道 你可能希望只有当价格从开仓价 向右移动了至少X个点(例如100)时,才会激活一个仓位的trall?如果是这样,那就是在trall函数中增加了一行代码 另一个变种是,当从开盘价起经过X个点时,就会触发trall:走100点--trall--50点,再走100点--trall--50点,等等。 [删除] 2011.10.31 12:55 #36 Avals: 也许您需要的是,只有当价格在所需的方向上移动了至少X个点(例如100点)时,才能激活头寸的拖网?如果是,那么这就是trall函数中额外的一行代码 还有一种变体是,当从开盘价起经过X个点时,就会触发Trall:经过100便士-Trall-50便士,再经过100便士-Trall-50便士,等等。 我是这样做的,也就是说,在某些事件中,Trall被打开了。 当一个位置被打开时,没有任何问题。 如果你开了2个或更多的头寸,trawl只暴露一个SL。 如果任何位置达到SL 该类型的所有职位都已关闭 我需要拖车保持一种类型的位置 独立 Avals 2011.10.31 13:12 #37 charony: 我是这样做的,也就是说,在某些情况下,拖网会被打开。当一个职位空缺时,就没有问题了。如果你开了2个或更多的头寸,拖网只设置一个SL。当任何位置达到SL该类型的所有职位都已关闭 你的止损对所有头寸的设置都是一样的,即从最后的价格开始的TralingStop 点,并且只向开仓 的方向移动。也就是说,对于所有的头寸,买入追踪都 是从 持有期的 最大值开始 设置的,当然它们都是在同一时间关闭的,因为最大值是共同的。考虑一下你需要什么,什么是关闭 "同一类型的位置相互独立 "的算法。有很多变种。 [删除] 2011.10.31 13:46 #38 在设置中,SL没有被设置,即=0,TP也=0。 Trawl=50点,适用于所有头寸和所有类型 尾随者应独立于对方的领导地位 在1000=pos1Buy时,价格向北在1050 Trawl放SL为pos1Buy。 价格进一步向北走,达到1090,买入位置1的SL仍然是1050,买入位置2没有SL。 价格向南走,到了1050,两个位置都被关闭。 我需要SL只关闭pos1 如果价格达到1140 ,pos2应该在 SL 上关闭 。 也就是说,在1130点 ,pos2有 SL,从1140点开始,价格跌到1130点以下。 应触发 位置2的SL поз2Buy--------------------------------------------------------------------------1080 SL---------------------------------------------------------------------------------1050 поз1Buy--------------------------------------------------------------------------1000 Aleksey 2011.10.31 14:05 #39 当你打开一个订单时,你可以把它设置为Time[0]或其他东西,日期、时间或其他东西)。 摄取。 level_ts - 以点为单位的追踪止损 level_step - 后续步骤 mn - Magik,如果是-1,它将遍历所有订单。 //+----------------------------------------------------------------------------+ //| TrailingStop. | //| траллит все ордера, на уровень выставленный во входных параметрах. | //+----------------------------------------------------------------------------+ void TrailingStop(int level_ts, int level_step = 5, int mn = -1) { int ot, err, quantity_orders, cx; bool fm; double op, as, bd, pt, sl, tp, ut; //---- quantity_orders = OrdersTotal(); if(quantity_orders >= 0) { for(cx = 0; cx < quantity_orders; cx++) { if(!OrderSelect(cx, SELECT_BY_POS, MODE_TRADES)) { Print("Error: SimpleTrailing(), OrderSelect: " + cx + ". Ошибка: " + GetLastError()); } if (mn < 0 || OrderMagicNumber()==mn) { pt = MarketInfo(OrderSymbol(), MODE_POINT); bd = MarketInfo(OrderSymbol(), MODE_BID); as = MarketInfo(OrderSymbol(), MODE_ASK); op = OrderOpenPrice(); ot = OrderType(); sl = OrderStopLoss(); tp = OrderTakeProfit(); ut = level_ts + level_step; if(ot == OP_BUY) { if(sl == 0 || sl < op) { // если стопа нет или стоп ниже цены открытия if(op < (bd - ut * pt)) { // если цена открытия ниже чем текущая цена минус ( стоп - шаг стопа) sl = bd - level_ts * pt; } } else { if(sl < (bd - ut * pt) && bd > (op + ut * pt)) { sl = bd - level_ts * pt; } } } if(ot == OP_SELL) { if(sl == 0 || sl > op) { if(op > (as + ut * pt)) { sl = as + level_ts * pt; } } else { if(sl > (as + ut * pt) && as < (op - ut * pt)) { sl = as + level_ts * pt; } } } if (sl != OrderStopLoss()) { op = NormalizeDouble(op, Digits); tp = NormalizeDouble(tp, Digits); sl = NormalizeDouble(sl, Digits); fm = OrderModify(OrderTicket(), op, sl, tp, 0, CLR_NONE); if (fm) { if (UseSound) PlaySound(NameFileSound); } else { err=GetLastError(); Print("Error(",err,") SimpleTrailing(): ",ErrorDescription(err)); } } } } } } Avals 2011.10.31 14:06 #40 charony: 在设置中,SL没有设置,即=0,TP也=0。 Trawl=50点,适用于所有头寸和所有类型 尾随者应独立于对方的领导地位 在1000=pos1Buy时,价格向北在1050 Trawl放SL为pos1Buy。 价格进一步向北走,达到1090,买入位置1的SL仍然是1050,买入位置2没有SL。 价格向南走,到了1050,两个位置都被关闭。 我需要SL只关闭pos1 如果价格达到1140 ,pos2应该在 SL 上关闭 。 也就是说,在1130点 ,pos2有 SL,从1140点开始,价格跌到1130点以下。 应触发 位置2的SL поз2Buy--------------------------------------------------------------------------1080 SL---------------------------------------------------------------------------------1050 поз1Buy--------------------------------------------------------------------------1000 如果我理解正确,你需要替换 if (NormalizeDouble(SL,Digits)<// Если ниже желаемого.. NormalizeDouble(Bid-TS,Digits)) 于 if (NormalizeDouble(SL,Digits)<// Если ниже желаемого.. NormalizeDouble(Bid-TS,Digits) && (Bid>=Price+TS)) 出售也是如此。 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在2次销售中,拖网应该使SL达到850。
我的价格接近950,不是手动交易。
如何在代码中解决这个问题?
我为什么要这样做?如果价格只达到899,那么Trall应该在50个点之外,所以应该在950左右。
他在SL上关闭了它,从1sell开始
难道没有人知道
你可能希望只有当价格从开仓价 向右移动了至少X个点(例如100)时,才会激活一个仓位的trall?如果是这样,那就是在trall函数中增加了一行代码
另一个变种是,当从开盘价起经过X个点时,就会触发trall:走100点--trall--50点,再走100点--trall--50点,等等。
也许您需要的是,只有当价格在所需的方向上移动了至少X个点(例如100点)时,才能激活头寸的拖网?如果是,那么这就是trall函数中额外的一行代码
还有一种变体是,当从开盘价起经过X个点时,就会触发Trall:经过100便士-Trall-50便士,再经过100便士-Trall-50便士,等等。
我是这样做的,也就是说,在某些事件中,Trall被打开了。
当一个位置被打开时,没有任何问题。
如果你开了2个或更多的头寸,trawl只暴露一个SL。
如果任何位置达到SL
该类型的所有职位都已关闭
我需要拖车保持一种类型的位置
独立
我是这样做的,也就是说,在某些情况下,拖网会被打开。
当一个职位空缺时,就没有问题了。
如果你开了2个或更多的头寸,拖网只设置一个SL。
当任何位置达到SL
该类型的所有职位都已关闭
你的止损对所有头寸的设置都是一样的,即从最后的价格开始的TralingStop 点,并且只向开仓 的方向移动。也就是说,对于所有的头寸,买入追踪都 是从 持有期的 最大值开始 设置的,当然它们都是在同一时间关闭的,因为最大值是共同的。考虑一下你需要什么,什么是关闭 "同一类型的位置相互独立 "的算法。有很多变种。
在设置中,SL没有被设置,即=0,TP也=0。
Trawl=50点,适用于所有头寸和所有类型
尾随者应独立于对方的领导地位
在1000=pos1Buy时,价格向北在1050 Trawl放SL为pos1Buy。
价格进一步向北走,达到1090,买入位置1的SL仍然是1050,买入位置2没有SL。
价格向南走,到了1050,两个位置都被关闭。
我需要SL只关闭pos1
如果价格达到1140 ,pos2应该在 SL 上关闭 。
也就是说,在1130点 ,pos2有 SL,从1140点开始,价格跌到1130点以下。
应触发 位置2的SL
поз2Buy--------------------------------------------------------------------------1080
SL---------------------------------------------------------------------------------1050
поз1Buy--------------------------------------------------------------------------1000
当你打开一个订单时,你可以把它设置为Time[0]或其他东西,日期、时间或其他东西)。
摄取。
level_ts - 以点为单位的追踪止损
level_step - 后续步骤
mn - Magik,如果是-1,它将遍历所有订单。
在设置中,SL没有设置,即=0,TP也=0。
Trawl=50点,适用于所有头寸和所有类型
尾随者应独立于对方的领导地位
在1000=pos1Buy时,价格向北在1050 Trawl放SL为pos1Buy。
价格进一步向北走,达到1090,买入位置1的SL仍然是1050,买入位置2没有SL。
价格向南走,到了1050,两个位置都被关闭。
我需要SL只关闭pos1
如果价格达到1140 ,pos2应该在 SL 上关闭 。
也就是说,在1130点 ,pos2有 SL,从1140点开始,价格跌到1130点以下。
应触发 位置2的SL
поз2Buy--------------------------------------------------------------------------1080
SL---------------------------------------------------------------------------------1050
поз1Buy--------------------------------------------------------------------------1000
如果我理解正确,你需要替换
于
出售也是如此。