Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Откровенно говоря не понятно зачем
Код: |
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 1, 10, 1); |
вставлена внутрь if ??? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
000 писал(а): |
вставлена внутрь if ??? |
чтоб ТФ не пересекплись.
второй ТФ должен быть больше первого. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну по тому коду что я вижу TimeFrameHigh от TimeFrame никак не зависит несмотря на то, что находится внутри if |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
000 писал(а): |
Ну по тому коду что я вижу TimeFrameHigh от TimeFrame никак не зависит несмотря на то, что находится внутри if |
поэтому я if для 10 минуток и вписал ещё ... там отсчёт идёт с 3-х.
а для TimeFrameHigh сделаны свои установки. могу и их вписать, если нужно, не хотел забивать страницами кода посты. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Напиши как делаешь? В смысле код. Я никак не пойму.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
Код: |
Frame2 =0;
TimeFrame = Optimize("Timeframe", 10, 1, 12, 1); //optimizatsija po timeframe
if (TimeFrame == 1) //Minutes
{Frame = in1Minute;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 1, 10, 1); }
else if (TimeFrame == 2) //3 min
{Frame = 3*in1Minute;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 1, 10, 1); }
else if (TimeFrame == 3) //5 min
{Frame = 5*in1Minute;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 2, 10, 1); }
else if (TimeFrame == 4) //7 min
{Frame = 7*in1Minute;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 2, 10, 1); }
else if (TimeFrame == 5) //10 min
{Frame = 10*in1Minute;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 2, 10, 1); }
else if (TimeFrame == 6) //12 min
{Frame = 12*in1Minute;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 3, 10, 1); }
else if (TimeFrame == 7) //15 min
{Frame = in15Minute;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 4, 10, 1); }
else if (TimeFrame == 8) //20 min
{Frame = 20*in1Minute;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 4, 10, 1); }
else if (TimeFrame == 9) //30 min
{Frame = 30*in1Minute;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 5, 10, 1); }
else if (TimeFrame == 10) //Hours
{Frame = inHourly;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 6, 10, 1); }
else if (TimeFrame == 11) //2 hours
{Frame = 2*inHourly;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 7, 10, 1); }
else if (TimeFrame == 12) //4 hours
{Frame = 4*inHourly;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 8, 10, 1); }
else if (TimeFrame == 13) //Days
{Frame = inDaily;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 9, 11, 1); }
else if (TimeFrame == 14) // 3days
{Frame = 3*inDaily;
TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 10, 11, 1); }
else if (TimeFrame == 15) //Weeks
{Frame = inWeekly;
TimeFrameHigh = Optimize("TimeFrameHigh+", 11, 11, 11, 1); }
//TimeFrameHigh = Optimize("TimeFrameHigh+", 10, 1, 10, 1); //optimizatsija po boljshemu timeframe
if (TimeFrameHigh == 1) //5 min
Frame2 = 5*in1Minute;
else if (TimeFrameHigh == 2) //10 min
Frame2 = 10*in1Minute;
else if (TimeFrameHigh == 3) //15 min
Frame2 = in15Minute;
else if (TimeFrameHigh == 4) //30 min
Frame2 = 30*in1Minute;
else if (TimeFrameHigh == 5) //Hours
Frame2 = inHourly;
else if (TimeFrameHigh == 6) //2 hours
Frame2 = 2*inHourly;
else if (TimeFrameHigh == 7) //4 hours
Frame2 = 4*inHourly;
else if (TimeFrameHigh == 8) //Days
Frame2 = inDaily;
else if (TimeFrameHigh == 9) // 3days
Frame2 = 3*inDaily;
else if (TimeFrameHigh == 10) //Weeks
Frame2 = inWeekly;
else if (TimeFrameHigh == 11) //Month
Frame2 = inMonthly;
|
вот так делаю. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Все. Теперь понятно. Все нормально. А работает хорошо?
Просто я однажды делал похожую конструкцию (только там было не Optimize а Param) и ничего не получилось т.к. ами кешировал эту функцию после первого прогона и дальнейшее изменение границ второй при изменении первой не работало. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
000 писал(а): |
Все. Теперь понятно. Все нормально. А работает хорошо?
Просто я однажды делал похожую конструкцию (только там было не Optimize а Param) и ничего не получилось т.к. ами кешировал эту функцию после первого прогона и дальнейшее изменение границ второй при изменении первой не работало. |
работает на ура.
афл правда ругался на переменную "Frame2", но после инициализации всё норм заработало. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Tim
Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров
|
Решил попробовать внести коррективы в систему:
ключевой параметр раз в день на 1-й свече будет рассчитываться не по 15 минуткам, а по 1-минуткам, но в дальнейшем весь день торговля идёт на 15-минутках.
Я перевёл настройки АА в 1 минуту, график на 1 минуту.
Как мне проще сделать в коде:
- ввести TimeFrameSet(in15Minute) ... TimeFrameRestore(), вынеся расчёт ключевого параметра за их пределы?
// сразу пишу - не получилось. Сигналов нет, Buyprice и т.д. для 15-минуток сидят в конце 1-минутного массива... в общем бардак.
- либо ввести для всех OHLCV новые TimeFrameExpand(...,in15Minute) и заменить всё на новые OHLCV, кроме расчёта ключевого параметра?
И ещё вопрос:
Было на 15-минутном фрейме/АА/графике так:
IIF(...AND TimeNum()==104500,..,..);
Теперь если фрейм/АА/график 1-минутные, то будет ли идентична запись:
IIF(... AND TimeFrameExpand(TimeNum(),in15Minute)==104500,..,..);
? Если нет, то как идентифицировать 2-ю 15-минутную свечу? Только через TimFrameSet(in15Minute)? |
_________________ УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Сложно отвечать.
Цитата: |
ввести TimeFrameSet(in15Minute) ... TimeFrameRestore(), вынеся расчёт ключевого параметра за их пределы?
// сразу пишу - не получилось. Сигналов нет, Buyprice и т.д. для 15-минуток сидят в конце 1-минутного массива... в общем бардак.
|
Именно так и делать. Ключевой рассчитывать на базовом фрейме, потом переключаться на 15 мин. Там рассчитывать все остальное, потом обратно на базовый. Экспандить там то, что рассчитано а 15 мин (TimeFrameExpand(Блабла, in15minute)
И собирать то, что получилось в сигналы Buy/Sell/Short/Cover
Не получилось вилимо потому, что то, что рассчитал на 15 мин не экспандил.
Цитата: |
- либо ввести для всех OHLCV новые TimeFrameExpand(...,in15Minute) и заменить всё на новые OHLCV, кроме расчёта ключевого параметра?
|
Непонял. Похоже не понимаешь что делает TimeFrameExpand()
Цитата: |
И ещё вопрос:
Было на 15-минутном фрейме/АА/графике так:
IIF(...AND TimeNum()==104500,..,..);
Теперь если фрейм/АА/график 1-минутные, то будет ли идентична запись:
IIF(... AND TimeFrameExpand(TimeNum(),in15Minute)==104500,..,..);
? Если нет, то как идентифицировать 2-ю 15-минутную свечу? Только через TimFrameSet(in15Minute)?
|
Вот так
Код: |
TimeFrameSet(in15Minute);
TF15min = TimeNum();
TimeFrameRestore();
TF15min = TimeFrameExpand(TF15min, in15Minute);
|
При этом целая куча минутных свечек (15мин) будет иметь "время" 104500
Наверное надо только первую. Тогда просто
TimeNum()==104500
Ведь минутная свеча с таким временем есть.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Tim
Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров
|
000 писал(а): |
Именно так и делать. Ключевой рассчитывать на базовом фрейме, потом переключаться на 15 мин. Там рассчитывать все остальное, потом обратно на базовый. Экспандить там то, что рассчитано а 15 мин (TimeFrameExpand(Блабла, in15minute)
И собирать то, что получилось в сигналы Buy/Sell/Short/Cover
Не получилось вилимо потому, что то, что рассчитал на 15 мин не экспандил.
|
Да точно не экспандил. Я не очень понимаю из какого /в какой таймфрейм можно экспандить.
000 писал(а): |
Непонял. Похоже не понимаешь что делает TimeFrameExpand()
|
То есть Экспанд не формирует массив OHLC из большего тайма?
000 писал(а): |
Вот так
Код: |
TimeFrameSet(in15Minute);
TF15min = TimeNum();
TimeFrameRestore();
TF15min = TimeFrameExpand(TF15min, in15Minute);
|
При этом целая куча минутных свечек (15мин) будет иметь "время" 104500
Наверное надо только первую. Тогда просто
TimeNum()==104500
Ведь минутная свеча с таким временем есть.... |
Мне надо не первую, а последнюю минуту во 2-й свечке. И это может быть не 104500, а 104400 и т.д. На большом таймфрейме это учитывается, а на минутном как подобрать не знаю. Возможно так:
TimeFrameExpand(TF15min,in15Minute,ExpandLast) ? |
_________________ УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
То есть Экспанд не формирует массив OHLC из большего тайма?
|
Нет. Expand "раздвигает" массив полученный на большем фрейме так, чтобы данные соответствовали дате/времени на базовом фрейме.
Цитата: |
Мне надо не первую, а последнюю минуту во 2-й свечке. И это может быть не 104500, а 104400 и т.д. На большом таймфрейме это учитывается, а на минутном как подобрать не знаю. Возможно так:
TimeFrameExpand(TF15min,in15Minute,ExpandLast) ?
|
А может тогда тупо
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|