Что-то не понятно, где тут замки, а где прочие сигналы? Соответственно не ясно какая конкретно нужна помощь.
Ясности побольше, иначе Вас просто не поймут...
total=OrdersTotal(); Comment( LotsCounting() ); //+=================================================================================+ // Проверка средств if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } //=========================== Открытие позиций ===================================+ if ( NumberOfPositions(NULL , -1, -1 )<Orders ) //если открытых позиций менее Orders { //+=================================================================================+ // Проверка условий для совершения сделки селл if (Lastp2 != s1) { if (! NumberOfBarOpenLastPos(NULL, 0,OP_SELL, Magic) ==0) //запрет неск. поз на одном баре { if (CM_1>CS_1 && CM_0<CS_0 && CM_0>MA) { if (s1>s2 && Close[1]<ma2 && Bid<ma60) { SL=0;TP=0; if(StopLoss>0) SL=Bid+Point*StopLoss; if(TakeProfit>0) TP=Bid-Point*TakeProfit; lots=LotsCounting(); ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,3,SL,TP,"Продаем- тра-ля-ля",Magic,0,Red); if(ticket < 0) Lastp2 = s1 ; MagicControl=ticket; { Print("Ошибка открытия ордера SELL #", GetLastError()); Sleep(10000); prevtime = Time[1]; return (0); } } } } } //+=================================================================================+ // Проверка условий для совершения сделки селл if (Lastp1 != b2) { if (! NumberOfBarOpenLastPos(NULL, 0,OP_BUY, Magic) ==0) //запрет неск. поз на одном баре { if (CM_1<CS_1 && CM_0>CS_0 && CM_0<MA_0) { if (b1<b2 && Close[1]>ma2 && Ask>ma60) { SL=0;TP=0; if(StopLoss>0) SL=Ask-Point*StopLoss; if(TakeProfit>0) TP=Ask+Point*TakeProfit; lots=LotsCounting(); ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,SL,TP,"Покупаем- хи-хи ",Magic,0,Green); if(ticket > 0) Lastp1 = b1; MagicControl=ticket; { Print("Ошибка открытия ордера BUY #", GetLastError()); Sleep(10000); prevtime = Time[1]; return (0); } } } } } //+=================================================================================+ } //если открытых позиций менее Orders //======================== конец блока открытия позиций ============================+ //========================== Контроль позиций встречные позиции ===============+ for ( int t = OrdersTotal() - 1; t >= 0; t -- ) { if (OrderSelect(t, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol()) { //+=================================================================================+ if(OrderType() == OP_SELL && OrderMagicNumber()==Magic) { if ((Ask-OrderOpenPrice()) > (Point*50)) { if (4CT<2CT && 3CT>1CT) { OrderSend(Symbol(),OP_BUY,lots*2,Ask,3,SL,TP,"Покупаем- хи-хи ",MagicControl,0,Green); } } } //+=================================================================================+ if(OrderType() == OP_BUY && OrderMagicNumber()==Magic) { if ((OrderOpenPrice()-Bid) < (Point*50)) { if (4CT>2CT && 3CT<1CT) { OrderSend(Symbol(),OP_SELL,lots*2,Ask,3,SL,TP,"Покупаем- хи-хи ",MagicControl,0,Green); } } } //+=================================================================================+ if(OrderType() == OP_SELL && OrderMagicNumber()==Magic) { if (OrderTicket()==MagicControl) { prof1=OrderProfit(); if(OrderType() == OP_BUY && OrderMagicNumber()==MagicControl) { prof2=OrderProfit(); if ((prof1+prof2)>0) { OrderClose(OrderTicket(),lots,Ask,3,Yellow); OrderClose(OrderTicket(),lots,Bid,3,Yellow); } } } } //+=================================================================================+*/ } // Symbol() } // select } //total //============================== Конец блока контроля ==============================+
я даже не знаю, так понятней будет? то что в блоке контроль позиции и есть замок. Выбираем позицию. Если ее профит отрицательный и выполняется сигнал на открытие встречной позиции, то открываем встречку с двойным лотом. И которой присваивается магик с номером убыточной позиции.
Далее пытаюсь суммировать эти 2 встречных позиции. Так понятней?
Спасибо, очень полезное видео для меня. Тогда вот встречный вопрос, если не возможно в селе проверить бай.
Допустим у меня есть позиция селл, убыточная, я открываю по моему сигналу встречную позицию бай с двойным лотом. Как мне определить их общий профит и когда он будет больше 0 закрыть оба ордера?
Спасибо, очень полезное видео для меня. Тогда вот встречный вопрос, если не возможно в селе проверить бай.
Допустим у меня есть позиция селл, убыточная, я открываю по моему сигналу встречную позицию бай с двойным лотом. Как мне определить их общий профит и когда он будет больше 0 закрыть оба ордера?
Идти циклом по открытым ордерам, считая профит. Когда он станет больше 0 - закрыть все. Всё.
Спасибо, очень полезное видео для меня. Тогда вот встречный вопрос, если не возможно в селе проверить бай.
Допустим у меня есть позиция селл, убыточная, я открываю по моему сигналу встречную позицию бай с двойным лотом. Как мне определить их общий профит и когда он будет больше 0 закрыть оба ордера?
Открыли встречный ордер с двойным лотом. Теперь нужно узнать сколько в деньгах стОит 1 пункт для минимального лота. Довольно сложная для начинающего задачка. Но поскольку у Вас удвоение, то задача упрощается. Смотрите, у вас открыт бай с лотом 0,1 и селл с тем же лотом = 0,1. Расстояние между ордерами = 20 пунктов. Ясно, что точка безубытка встанет на уровень 10 пунктов - убыток одного ордера будет покрыт прибылью другого - то есть, при равенстве лотов точка безубытка находится ровно посерёдке между ордерами.
А теперь пусть наш бай-ордер имеет лото = 0,2. Получается, что ему нужно пройти в профит всего 5 пунктов (четверть расстояния) чтоб покрыть убыток вверхунаходящегося селл-ордера с лотом = 0,1
То есть, Если у Вас лоты всегда пропорциональны числу 2, то можно не заморачиваться со стоимостью пункта.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
имеется 2 типа сигналов: для торговли и для замков.
Замки по данному коду открываются корректно и соответствуют задумке. Помогите кодом. Необходимо чтобы суммировался профит от позиции и от его замка. Если сумма этой пары позиций больше "0" то необходимо закрыть обе позиции.
как это реализовать.
Пробовал таким образом, ничего не выходит.