А почему всё наоборот (вверх ногами)? На графике валюта падает на индикаторе растёт.
я бы назвал его по другому, индикатор - "Аццкие Нити"
А почему всё наоборот (вверх ногами)? На графике валюта падает на индикаторе растёт.
Надо параметры Fast и Slow соответствующие сделать
я бы назвал его по другому, индикатор - "Аццкие Нити"
Идя не моя, название уже было. Могу только выожить очередную версию. С фильтром по текущему инструменту. Но это если необходимо будет
Пардон, но не вижу как раз синхнронизации, т.е. чтобы время нулевого бара у всех инструментов совпадало. Я для своей модификации (не совсем CCFp уже) делал.
Выглядит примерно так:
bool Sync = true; int start() { // synchronization string StrUnsync; int u; int n = ArraySize(Symbols); for(int j = 0; j < n; j++) { if(iTime(Symbols[j], 0, 0) != Time[0]) { StrUnsync = StrUnsync + Symbols[j] + " "; u++; } } if(u > 0) { Comment("Some symbols are unsynchonized:", StrUnsync); Sync = false; return(-1); } else { if(!Sync) Comment(""); Sync = true; } ... }
Исходный подход СёмСёмыча с проходом от нуля влево и обрывом расчета, когда по какой-либо паре заканчиваются данные, мне показался более гибким. Я там для себя Print поставил, но можно и Alert.
Наличие истории на заданную глубину требуется не только в CCFp, поэтому имеет смысл её проверять (и закачивать) отдельным скриптом, ИМХО. ;-)
Пардон, но не вижу как раз синхнронизации, т.е. чтобы время нулевого бара у всех инструментов совпадало. Я для своей модификации (не совсем CCFp уже) делал.
Выглядит примерно так:
Исходный подход СёмСёмыча с проходом от нуля влево и обрывом расчета, когда по какой-либо паре заканчиваются данные, мне показался более гибким. Я там для себя Print поставил, но можно и Alert.
Наличие истории на заданную глубину требуется не только в CCFp, поэтому имеет смысл её проверять (и закачивать) отдельным скриптом, ИМХО. ;-)
Что такое синхронизация. Для меня это поиск ближайшего бара, равного по времени заданному времени
В моем варианте не хватает контроля. Раньше немного по другому делал
double ma(string sym, int per, int Mode, int Price, int i) { double res = 0; int tf = 0; int pos=iBarShift(NULL,0,Time[i]); // Поиск бара // ....................... return(res); }
Не хватает контроля найденного бара. Его время должно быть равно или меньше времени бара текущего инструмента
Сейчас скачал данный вариант, опять та же проблема. на ТФ Н4 и ниже линии валют идут параллельно друг другу очень долго.
Не показывая реальной динамики. Наверное вы сделали индикатор правильно, но тот, неправильный, написанный ранее, более
информативен.
Просто просматривал, не запускал, заметил нечто - решил спросить.
Вы точно не пропустили здесь break ?
Так для Period() == 1 будут выполняться все case подряд, насколько понимаю.
Спасибо.
//+------------------------------------------------------------------+
//| Subroutines |
//+------------------------------------------------------------------+
double ma(string sym, int per, int Mode, int Price, int i)
{
double res = 0;
int k = 1;
int tf = 0;
int pos=iBarShift(NULL,0,Time[i]);
switch(Period())
{
case 1: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 5; // break;
case 5: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 3; // break;
case 15: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 2; // break;
case 30: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 2; // break;
case 60: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4; // break;
case 240: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 6; // break;
case 1440: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4; // break;
case 10080: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4; // break;
case 43200: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); // break;
}
return(res);
}
Просто просматривал, не запускал, заметил нечто - решил спросить.
Вы точно не пропустили здесь break ?
Так для Period() == 1 будут выполняться все case подряд, насколько понимаю.
Спасибо.
//+------------------------------------------------------------------+
//| Subroutines |
//+------------------------------------------------------------------+
double ma(string sym, int per, int Mode, int Price, int i)
{
double res = 0;
int k = 1;
int tf = 0;
int pos=iBarShift(NULL,0,Time[i]);
switch(Period())
{
case 1: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 5; // break;
case 5: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 3; // break;
case 15: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 2; // break;
case 30: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 2; // break;
case 60: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4; // break;
case 240: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 6; // break;
case 1440: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4; // break;
case 10080: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4; // break;
case 43200: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); // break;
}
return(res);
}
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
CCFp:
Author: Victor Nikolaev