Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Почему таймфрейм именно М5 ???? Тестировать невозможно. Периодически вырезаны из истории целые месяца. Перепробовал несколько брокеров. Посоветуйте где взять полную историю котировок на М5. Пожалуйста.
Полную историю котировок можно взять с сайта ДЦ. На сайте надо найти "экспорт котировок". Выбираешь валютную пару и загружаешь файлы с котировками нужного таймфрейма. После В MetaTrader'e открываешь Сервис - Архив котировок - Импорт - и далее путь к нужному файлу. Более подробную информацию почитай в Справке - Архив котировок. Особых проблем, думаю, быть не должно.
Всем привет!
Подскажите почему советник делает ордера только на продажу?
Привет. Работа только с sell и открытие позиций в самом конце тренда не совсем приемлемо, нужно что-то делать. Вчерашний день это подтвердил, хотя до этого шёл в плюс. С кодом ещё не разобрался, может доскажите где можно вкл. buy, если это предусмотрено. В Ilan18 помойму buy работает. А так советник хороший, но за ним надо постоянно следить, т.к. стопы он не ставит.
еще раз, за откртие позиций на бай или на сел отвечает "индикатор глобального" тренда т.е. регрессии с большим периодом и ТФ
Runik - Take a look at this. In Ilan 193, the counting of trend trades appears to have a bug. Or Maybe I am missing something. There is another trade comment "IER" -- what does this stand for??
int NumT() // îïðåäåëåíèå íîìåðà òåêóùåé ñäåëêè
{
int nmax = 0;
for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--)
{
if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
if (StringFind(OrderComment(), "trend") == -1) // This line should be != -1 to identify an actual match in the comment tp "trend".
nmax = nmax+1;
}
return(nmax);
}
Thanks in advance, KingHigh
Runik - Take a look at this. In Ilan 193, the counting of trend trades appears to have a bug. Or Maybe I am missing something. There is another trade comment "IER" -- what does this stand for??
int NumT() // îïðåäåëåíèå íîìåðà òåêóùåé ñäåëêè
{
int nmax = 0;
for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--)
{
if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
if (StringFind(OrderComment(), "trend") == -1) // This line should be != -1 to identify an actual match in the comment tp "trend".
nmax = nmax+1;
}
return(nmax);
}
Thanks in advance, KingHigh
еще раз, за откртие позиций на бай или на сел отвечает "индикатор глобального" тренда т.е. регрессии с большим периодом и ТФ
Даааа, это я уже нашёл, теперь другой вопрос: бывают такие ситуации, когда советник открывает позиции в самом конце тренда, опираясь на индикатор глоб. тренда, который ещё показывает, что можно играть, хотя рынок пошёл в др. сторону. Может есть вариант прикрутить сюда ещё индикатор CCI для ограничения торговли в такие моменты - скажем если индикатор тренда показывает ещё что есть тренд, а CCI перепрыгнул отметку 100, то позиции на покупку не открывать. Аналогично и sell. Думаю надо попробовать... Хотя CCI довольно часто при хорошем тренде находится за этой чертой и если полагаться лишь на него одного в данной ситуации, то тогда можно пропустить большую часть движения. Скорей всего нужен ещё к CCI и Momentum, который показывает полностью весь тренд.
Командир скинь основные параметры для оптимизации, чтобы систему не перегружать!
примерно
советник этот давно уже пишу и переписываю, отдельные куски оптимизировал на разных стадиях и поскольку это тоже илан, то то что справедливо для обычного илана и для этого пойдет
те кто иланом пользуются уже свой стиль выработали
для пары евродоллар нормально работает с теми же параметрами что и обычный илан т.е.
пипстеп 25-50 (30 наверное самое то )
тейк 10-30 ( 20-30 )
ТФ мне больше нравятся минутки, на часах можно работать и с меньшим шагом например 15-20, но рисково,
поэтому можно использовать функцию
extern int nH1=0; // =3 после 3 сделки переключаемся на ТФ Н1
extern int nH4=0; // =5 после 5 сделки переключаемся на тф Н4
следующее что можно погонять на оптимизации это параметры пипстепа по тренду
extern double TrendPS = 11;
extern double ProfitPerc= 5; - от 1 до 10 можно не оптить
extern double MinProfitPips =15; - можно не трогать и оставить для малых TrendPS - 10 а для больших 15-20
extern double MinProfitPipsOne =2; - от 2 до 10
extern double NumTr=2;
прогонял на оптимизации и получается смысл такой, что чем меньше шаг TrendPS и больше NumTr тем больше можно заработать, но при малых шагах все равно не открывается на реале, только на тестере и на демке так что TrendPS меньше 5 вообще смысла нет, при 7-15 самое то, мне кажется и зависит от скорости исполнения ордеров, при малых это пипсовка или скальпинг, те же правила и действуют
если делать NumTr больше 4-5 то риски выше, это как якорь получается вначале тренда, так что 2-3 самое то
следующее можно что можно оптить для каждой пары это параметры индикатора регрессии
пробовал для нескольких пар прогонять по барам, результаты забавные в целом чем больше SPer тем более устойчивый получается, и Regr.kstd1 должна соответствовать SPer
extern int Regr.degree1 = 3; // порядок регрессии - от 3
extern double Regr.kstd1 = 1.5; // ширина канала, если =0 то рисуется только средняя линия
extern int SPer = 800; // период баров
их можно оптимизировать в советнике ilan1.6_reg_v1.3, все таки быстрее
Привет Всем. Не поделитесь результатам оптимзации, у кого что получилось? А то у самого чёт неочень прикольные получаются. И интересно как лок оптить, на разных временных промежутках противоположные результаты получаются((((
Runik -- Look here in ModifTrendOrders ():
You will find that the handling of OP_BUY and OP_SELL uses all of the same logic which I do not think is correct. Take a look.
KingHigh
>> if (mpric>a1+TrendPS*Point && a1+TrendPS*Point>=Bid && Bid>=a1 && CountTrades(MagicNumber)>2 && allpro>0) CloseThisSymbolAll2();
>> if (mpric<a1+TrendPS*Point && k>=NumTr && CountTrades(MagicNumber)>NumTr) ClosePlusOrders(k);
>> } // modea==0 End of OP_Buy
>> if (mpric>a1+TrendPS*Point && a1+TrendPS*Point>=Bid && Bid>=a1 && CountTrades(MagicNumber)>2 && allpro>0) CloseThisSymbolAll2();
>> if (mpric<a1+TrendPS*Point && k>=NumTr && CountTrades(MagicNumber)>NumTr) ClosePlusOrders(k);
>> } // modea==1 End of OP_Sell Code
Should be as follows(I believe):
>> if (mpric<a1-TrendPS*Point && a1-TrendPS*Point<=Ask && Ask<=a1 && CountTrades(MagicNumber)>2 && allpro>0) CloseThisSymbolAll2();
>> if (mpric>a1-TrendPS*Point && k>=NumTr && CountTrades(MagicNumber)>NumTr) ClosePlusOrders(k);
>> } // modea==1 End of OP_Sell Code
Thanks In Advance, KingHigh