Пипсовка Советником, МТС |
Здравствуйте, гость ( Вход | Регистрация )
Пипсовка Советником, МТС |
leonid553 |
16.1.2007, 20:57
Сообщение
#11
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
Благодарю!
Нашёл(в одном месте), исправил! Опять две ошибки: "std" - an operator expected "std" - semicolon expected Что-то про точку с запятой... Может где-то ещё что исправить? |
SERGE |
17.1.2007, 13:05
Сообщение
#12
|
Группа: Активный участник Сообщений: 27 Регистрация: 10.6.2006 Пользователь №: 657 Спасибо сказали: 0 раз(а) |
Вот ,вроде все исправил.
Код //+------------------------------------------------------------------+ //| FTLM-CCI-flat.mq4 | //| //| //+------------------------------------------------------------------+ //для евро -доллар 5-15 мин extern double tTakeProfit =14; extern double TakeProfit =14; extern double Lots =0.1; extern double StopLoss =25; extern double a =0; extern double percci =9; extern double ccilimh =60; extern double stdlim =0.0008; extern double stdper =7; int start() { double std; double ftlm,ftlmz,ftlmzz; double cci; double cciliml=0-ccilimh; int cnt, ticket, total; if(Bars<100) { Print("bars less than 100"); return(0); } if(TakeProfit<10) { Print("TakeProfit less than 10"); return(0); // check TakeProfit } ftlm=iCustom(NULL,0,"FTLM_STLM",1,0); ftlmz=iCustom(NULL,0,"FTLM_STLM",1,1); ftlmzz=iCustom(NULL,0,"FTLM_STLM",1,2); cci = iCCI(NULL,0,percci ,PRICE_CLOSE,a);// CCI std=iStdDev(NULL,0,stdper,0,MODE_EMA,0,0); //+------------------------------------------------------------------+ total=OrdersTotal(); if(total<1) { // no opened orders identified if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } // check for long position (BUY) possibility if (ftlm >ftlmz&& ftlmz<ftlmzz && std<stdlim && cci < cciliml) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,Bid-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,Aqua);Sleep(10000); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return(0); } // check for short position (SELL) possibility if (ftlm<ftlmz&& ftlmzz<ftlmz && std<stdlim && cci > ccilimh ) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,2,Ask+StopLoss*Point,Bid-TakeProfit*Point,"",0,0,Yellow);Sleep(10000); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); return(0); } return(0); } for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && // check for opened position OrderSymbol()==Symbol()) // check for symbol { if(OrderType()==OP_BUY) // long position is opened { if (Bid>=OrderOpenPrice()+tTakeProfit*Point) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position } return(0); // exit } else { if ( Ask<=OrderOpenPrice()-tTakeProfit*Point ) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position return(0); // exit } } } } return(0); } |
leonid553 |
18.1.2007, 21:29
Сообщение
#13
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
Благодарю! Всё получилось ...
|
leonid553 |
6.3.2007, 10:04
Сообщение
#14
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
Ув. Serge!
Прошу прощения! Но в силу своих скромных познаний при разборе кода вроде бы нашел ошибку : При проверке условий на вход в BUY, ПЕРВОЕ УСЛОВИЕ выглядит так: // check for long position (BUY) possibility if (ftlm >ftlmz&& ftlmz<ftlmzz && std<stdlim && cci < cciliml) { Однако. Мне представилось, что во втором неравенстве должно быть: " ftlmz>ftlmzz " Тем более, если предположить, что условие нА вход в SELL ПОКАЗАНО ПРАВИЛЬНО: // check for short position (SELL) possibility if (ftlm<ftlmz&& ftlmzz<ftlmz && std<stdlim && cci > ccilimh ) |
miranon |
9.3.2007, 12:13
Сообщение
#15
|
Группа: Пользователи Сообщений: 3 Регистрация: 7.12.2006 Пользователь №: 1 062 Спасибо сказали: 0 раз(а) |
|
leonid553 |
9.3.2007, 12:33
Сообщение
#16
|
Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) |
И ещё вот вопрос. Если перед новостями вырубать - то как оптимизировать?
иЗ истории новости не вырежешь? |
SERGE |
10.3.2007, 14:25
Сообщение
#17
|
Группа: Активный участник Сообщений: 27 Регистрация: 10.6.2006 Пользователь №: 657 Спасибо сказали: 0 раз(а) |
Ув. Serge! Прошу прощения! Но в силу своих скромных познаний при разборе кода вроде бы нашел ошибку : При проверке условий на вход в BUY, ПЕРВОЕ УСЛОВИЕ выглядит так: // check for long position (BUY) possibility if (ftlm >ftlmz&& ftlmz<ftlmzz && std<stdlim && cci < cciliml) { Однако. Мне представилось, что во втором неравенстве должно быть: " ftlmz>ftlmzz " Тем более, если предположить, что условие нА вход в SELL ПОКАЗАНО ПРАВИЛЬНО: // check for short position (SELL) possibility if (ftlm<ftlmz&& ftlmzz<ftlmz && std<stdlim && cci > ccilimh ) Условия указаны верно, можно еще немного фильтрануть - if (0>ftlm >ftlmz&& ftlmz<ftlmzz && std<stdlim && cci < cciliml) условие покупки if (0<ftlm<ftlmz&& ftlmzz<ftlmz && std<stdlim && cci > ccilimh ) условие продажи. Оптимизировать нужно все параметры - в зависимости от инструмента, сначала набросте индикаторы на график цены и прикиньте в каких примерно пределах они должны изменяться. Советник сам определяет состояние флета (индикатор Стандартная девиация), в зависимости от периода и порога этой функции будет зависеть реакция эксперта на выбросы из флетового канала. Оптимизировать нужно насквозь , вместе с новостями , просто вероятность ошибочного входа на откатах во время новостей больше - поэтому оптимизированный советник на время выхода новостей лучше отключить. |
miranon |
11.3.2007, 16:21
Сообщение
#18
|
Группа: Пользователи Сообщений: 3 Регистрация: 7.12.2006 Пользователь №: 1 062 Спасибо сказали: 0 раз(а) |
Оптимизировать нужно все параметры - в зависимости от инструмента, сначала набросте индикаторы на график цены и прикиньте в каких примерно пределах они должны изменяться. Советник сам определяет состояние флета (индикатор Стандартная девиация), в зависимости от периода и порога этой функции будет зависеть реакция эксперта на выбросы из флетового канала. Оптимизировать нужно насквозь , вместе с новостями , просто вероятность ошибочного входа на откатах во время новостей больше - поэтому оптимизированный советник на время выхода новостей лучше отключить. Serge Скажите а сколько времени у вас занимает оптимизация всех параметров по eur/usd по всем тикам за последний месяц? |
SERGE |
12.3.2007, 10:22
Сообщение
#19
|
Группа: Активный участник Сообщений: 27 Регистрация: 10.6.2006 Пользователь №: 657 Спасибо сказали: 0 раз(а) |
Оптимизировать нужно все параметры - в зависимости от инструмента, сначала набросте индикаторы на график цены и прикиньте в каких примерно пределах они должны изменяться. Советник сам определяет состояние флета (индикатор Стандартная девиация), в зависимости от периода и порога этой функции будет зависеть реакция эксперта на выбросы из флетового канала. Оптимизировать нужно насквозь , вместе с новостями , просто вероятность ошибочного входа на откатах во время новостей больше - поэтому оптимизированный советник на время выхода новостей лучше отключить. Serge Скажите а сколько времени у вас занимает оптимизация всех параметров по eur/usd по всем тикам за последний месяц? 2-3 часа. Чтобы быстрее провести оптимизацию начальный шаг изменения переменных устанавливаю 10-20% от всего диапазона сканирования , затем в пределах найденных оптимальных значений провожу точную оптимизацию с минимальным шагом изменения переменных . |
SERGE |
16.3.2007, 8:49
Сообщение
#20
|
Группа: Активный участник Сообщений: 27 Регистрация: 10.6.2006 Пользователь №: 657 Спасибо сказали: 0 раз(а) |
2-3 часа. Чтобы быстрее провести оптимизацию начальный шаг изменения переменных устанавливаю 10-20% от всего диапазона сканирования , затем в пределах найденных оптимальных значений провожу точную оптимизацию с минимальным шагом изменения переменных
|
Текстовая версия | Сейчас: 15.5.2024, 1:54 |