Стопы тоже неправильно выполнены.
Лучше бы вот так :
extern int StopLoss=100; extern int TakeProfit=70; double SL,TP; int ticket; //-- Подключаемые модули -- #include <stderror.mqh> #include <stdlib.mqh> //-------------------------------- ...... .......{ SL=0;TP=0; if(StopLoss>0) SL=Ask-Point*StopLoss; if(TakeProfit>0) TP=Ask+Point*TakeProfit; ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,SL,TP,"хи-хи",0,0,Blue); if(ticket < 0) { Print("Ошибка открытия ордера BUY #", GetLastError()); Sleep(10000); return (0);} }
Просто в голову пришла одна идея, хочется ее воплотить ...
Использую индикатор ССI. При достижении уровня открывается сделка... потом так же закрываеться.
Вот код...
На вскидку... Посмотрите справку или учебник по функциям, которые выделены красным. И попробуйте сначала понять конструкцию, которую строите - для чего нужны те или иные операторы, прежде чем садиться программировать. А с наскока, подставить лишь бы было - из этого ничего не получится. Вы должны сами полностью понять конструкцию программы и "разжевать ее компьютеру" написав правильный код. Например, для чего у вас оператор for(), для чего он служит, что он делает? И т.п. Если вы сами конструкцию не понимаете, как ее сможет понять компьютер?
//+------------------------------------------------------------------+ //| Проба01.mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, MetaQuotes Software Corp." #property link "" //---- input parameters extern int TP=150; extern int SL=70; extern int LEVEL_1=100; extern int LEVEL_2=-100; extern int lots=1; //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ int start() {double val = iCCI(NULL ,PERIOD_M1,14,PRICE_TYPICAL,0); if(OrderType()) { if(val>LEVEL_1) { OrderSend(Symbol(),OP_BUY,lots,SL,TP,magic(),0,Green); } else if(val<LEVEL_2) { OrderSend(Symbol(),OP_SELL,lots,SL,TP,magic(),0,Red); return(); } } for() { OrderSelect(SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() ) { if(OrderType()==OP_BUY) { if(val<-100) { OrderClose(OrderTicket(),OrderLots(),Violet); return(); } } else { if(val>100) { OrderClose(OrderTicket(),OrderLots(),Violet); return(); } } } } return(); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Просто в голову пришла одна идея, хочется ее воплотить ...
Использую индикатор ССI. При достижении уровня открывается сделка... потом так же закрываеться.
Вот код...