#property copyright "Serg" #property link "http://www.metaquotes.net" bool init = false; int MagicNumber=017; extern double lot = 1; //количество открываемых лотов в одной сделке (фикс) extern int dist = 1; //расстояние между контрольными точками extern double per1 = 21; extern double per2 = 55; extern double slip = 3; double MaF_1, MaS_1, MaF_2, MaS_2; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { if (init) return(0); init = true; //---- какая-то стандартная херня, сам ничо не понял //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { init = false; //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ // Торговые критерии int start() { int ticket=0, type1, i; MaF_1=iMA(Symbol(), Period(), per1,0, 1, 0,0); MaS_1=iMA(Symbol(), Period(), per2,0, 1, 0,0); MaF_2=iMA(Symbol(), Period(), per1,0, 1, 0, dist); MaS_2=iMA(Symbol(), Period(), per2,0, 1, 0, dist); type1=-1; if (MaF_1<MaS_1 && MaF_2>MaS_2) type1=OP_BUY; if (MaF_1>MaS_1 && MaF_2<MaS_2) type1=OP_SELL; i=0; for ( int trade = OrdersTotal()-1; trade>=0; trade-- ) { if (OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) { int m = OrderType(); if (( m==OP_BUY || m==OP_SELL ) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() ) { i=i+1; } } } // допускаем только один открытый ордер одновременно if (i==1) return(0); //----открытие ордеров if (type1==OP_SELL) ticket=OrderSend(Symbol(),OP_SELL,lot, Bid,0,0,NULL, MagicNumber); if (type1==OP_SELL) ticket=OrderSend(Symbol(),OP_BUY, lot, Ask, 0,0,NULL, MagicNumber); //----ошибки if (ticket<0) { Sleep(50000); RefreshRates(); } return(0); }
спасибо!!! ох уж эти скобки=))
Kisel: спасибо!!! ох уж эти скобки=))
С самого начала учитесь избегать лишних вычислений. Сравните:
//+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ // Торговые критерии int start() { int ticket=0, type1 = -1, i = 0; for ( int trade = OrdersTotal()-1; trade>=0; trade-- ) { if (OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) { int m = OrderType(); if (( m==OP_BUY || m==OP_SELL ) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() ) {i++;} } } // допускаем только один открытый ордер одновременно if (i==1) return(0); MaF_1=iMA(Symbol(), Period(), per1,0, 1, 0,0); MaS_1=iMA(Symbol(), Period(), per2,0, 1, 0,0); MaF_2=iMA(Symbol(), Period(), per1,0, 1, 0, dist); MaS_2=iMA(Symbol(), Period(), per2,0, 1, 0, dist); if (MaF_1<MaS_1) {if (MaF_2>MaS_2) type1=OP_BUY;} else if (MaF_1>MaS_1) {if (MaF_2<MaS_2) type1=OP_SELL;} //----открытие ордеров if (type1==OP_SELL) ticket=OrderSend(Symbol(),OP_SELL,lot, NormalizeDouble (Bid, Digits),0,0,NULL, MagicNumber); if (type1==OP_BUY) ticket=OrderSend(Symbol(),OP_BUY, lot, NormalizeDouble (Ask, Digits), 0,0,NULL, MagicNumber); //----бесполезные действия if (ticket<0) { Sleep(50000); RefreshRates(); } return(0); }
Кстати, у Вас была ошибка в коде (исправил) на условие открытия BUY ордера.
P.S. А как они (ордера) у Вас закрываются: нет ни СТОПов ни закрытия по обратному сигналу???
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
первый день за рулем))
1 ошибка
end of programm - unbalanced left parenthesis, отсылает в а
заранее спасибо!