- блок формирования/отслеживания торговых сигналов
- блок открытия ордеров при наличии сигнала
- блок сопровождения открытых ордеров
- блок принудительного закрытия позиций (в случае надобности)
За открытие ордеров отвечает функция OrderSend()
Вы бы выложили свой код - так было бы проще.
Спасибо за расширенный ответ но OrderSend(Symbol(), OP_BUY, lots,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, 0, Blue);//покупаем,или,OrderSend(Symbol(), OP_BUY, lots,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, 0, Blue);//продаём
я это знаю....положим что новый бар ценой открытия подтвердил наличие сделки мне нужен кусок кода который на текущем баре откроет позицию с фильтром в 10пп . Заранее спасибо тем кто может помочь..
Хорошо - поставим вопрос иначе. Есть цена открытия свечи. Есть движение цены = 10 пунктам вверх от открытия и вниз от открытия. Итого имеем коридор = 20 пунктам. Как советник должен себя вести в этом ценовом коридоре и как должен действовать, если цена преодолеет верхнюю границу коридора? А нижнюю?
я кунечно, дико извиняюсь...
Но если люди ушли.. можно к своему топику вернутся? и резюмировать.
а то -> сгинет бесславно.
А тема правильная (как по мне) была.
-----
в ценовом коридоре...
;)
открываем ордер бай при цене опен бар +10 пп .селл при опенбар - 10пп
extern int MAGIC=456892154687;// у ордеров, открытых вручную MAGIC равен нулю int OldBars=0,TicketBuy,TicketSell; double MyBid,MyAsk; string SMB; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init(){ OldBars=Bars; SMB=Symbol(); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit(){ return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start(){ if(OldBars<Bars){//пришёл новый бар, запоминаем цену его открытия OldBars=Bars; MyBid=Bid; MyAsk=Ask; } if(SchBuy(MAGIC)==0){// лонгов в рынке нет if(Ask-MyAsk>=10*Point){// цена прошла 10 пунктов вверх TicketBuy=OrderSend(/*тут вписываем параметры открытия Бай-ордера*/); } } if(SchSell(MAGIC)==0){// шортов в рынке нет if(MyBid-Bid>=10*Point){// цена прошла 10 пунктов вниз TicketSell=OrderSend(/*тут вписываем параметры открытия Селл-ордера*/); } } return(0); } // ================ Пользовательские подпрограммы ======================= // ================================================================================================= // ************************* Счётчики ордеров ****************************************************** // ================================================================================================= //=========== SchBuy() =============================== // Функция возвращает количество Buy-ордеров // SchBuy - счётчик Buy ордеров //----------------------------------------------------------- int SchBuy(int MAGIC){ string NameFunction="SchBuy()"; string SMB=Symbol(); int SchBuy=0; int i; for (i=OrdersTotal()-1;i>=0;i--) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { //WriteError(i); Print(" ============== ",NameFunction," ============== "); } else { if(OrderSymbol()!= SMB || OrderMagicNumber()!= MAGIC){ continue;} if(OrderType()==OP_BUY){ SchBuy++; } } } return(SchBuy); } //================================================================================================== //=========== SchSell() =============================== // Функция возвращает количество Sell-ордеров // SchSell - счётчик Sell ордеров //----------------------------------------------------------- int SchSell(int MAGIC){ string NameFunction="SchSell()"; string SMB=Symbol(); int SchSell=0; int i; for (i=OrdersTotal()-1;i>=0;i--){ if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { //WriteError(i); Print(" ============== ",NameFunction," ============== "); } else { if(OrderSymbol()!=SMB || OrderMagicNumber()!=MAGIC){ continue;} if(OrderType()==OP_SELL){ SchSell++; } } } return(SchSell); } //================================================================================================== //+------------------------------------------------------------------+

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
требуеться код на открытие позицию на новом баре с фильтром в пп (допустим индикатор показывает бай .на след баре открываем позицию бай с фильторм в 10пп..наоборот если селл.) Заранее спасибо