Стратегии и роботы > Несколько входных рядов в стратегиях
-
- Сообщения: 30
- Зарегистрирован: 03 окт 2020, 22:38
- Благодарил (а): 12 раз
- Поблагодарили: 7 раз
Re: Несколько входных рядов в стратегиях
Надо писать тикет альфе. Надеюсь мы тут не много нафлудили и админ нас не забанит )
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: Несколько входных рядов в стратегиях
Jude_Masson писал(а):...Надеюсь мы тут не много нафлудили и админ нас не забанит )

никогда такого не было и вот опять
-
- Сообщения: 535
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 92 раза
Re: Несколько входных рядов в стратегиях
Возможно, что не предусмотрено, что один и тот же инструмент (хотя и с разным ТФ) м.б. торговым и неторговым одновременно ...
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: Несколько входных рядов в стратегиях
BugsDigger писал(а):Возможно, что не предусмотрено, что один и тот же инструмент (хотя и с разным ТФ) м.б. торговым и неторговым одновременно ...
предусмотрено в новой версии (текущей)
AddInput("Input1", Inputs.Candle, 60, true, "GAZP=МБ ЦК");
В стратегии возможно добавление нескольких рядов, в том числе с разными тайм-фреймами, но при этом торговый ряд (Trade=true) допустим только один, по нему отправляются заявки.
Как раз это и есть основное новшество, возможность добавлять инструменту другие ТФ для анализа и другие инструменты.
Проблема описана выше про некорректное CurrentPL.
CurrentPL некорректный даже если поменять инструмент в доп. рядах.
вот пример, Input1 = SIM1 (M5), Input2 = RIM1 (M1):
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:30:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:30:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:30:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:30:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:30:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:35:00;0,5719;444;77640;77617
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:35:00;0,5719;444;77640;77617
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:35:00;0,5719;444;77640;77617
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:35:00;0,5719;444;77640;77617
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:35:00;0,5719;444;77640;77617
Считает уже не 2220 CurrentPL, а 444.
CurrentPLper() остался тем же 0.5719 %, что тоже неправильно.
здесь не прибыль, а убыток в -23
77640 - средняя цена, 77617 текущая на баре, где сработало условие CurrentPLper() > 0.4%
т.е. цена ниже средней, убыток!
Должен
CurrentPL() -23
CurrentPLper() - 0,03
CurrentPL() – возвращает текущий доход по открытой позиции в валюте инструмента (рубли или пункты).
CurrentPLper() – возвращает изменение цены в процентах относительно учетной цены по открытой позиции в процентах.
никогда такого не было и вот опять
-
- Сообщения: 30
- Зарегистрирован: 03 окт 2020, 22:38
- Благодарил (а): 12 раз
- Поблагодарили: 7 раз
Re: Несколько входных рядов в стратегиях
Остаётся только добавить, что теперь CurrentPLper надо писать вот так
Код: Выделить всё
(((Input1.Close-AverPrice())/AverPrice())*100)
-
- Сообщения: 535
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 92 раза
Re: Несколько входных рядов в стратегиях
> предусмотрено в новой версии (текущей)
Ну это да.
Я имел в виду, что, возможно, при проектировании логики работы имелось в виду, что торговый и неторговый (е) ряды будут привязаны к разным инструментам. При привязке к одному инструменту м.б. происходит нечто непредвиденное авторами.
Но я скорее склоняюсь к тому, что корень проблемы - в вызовах OnUpdate по тикам неторговых ТФ (чаще ли, реже ли торгового они происходят - неважно).
Во-первых, я не вижу в этом никакой разумной логики: если я хочу определенной частоты вызовов OnUpdate, то совершенно неуместно подсовывать мне другие (фактически неожиданные) события.
Во-вторых, как раз неожиданные события могут провоцировать неправильные рассчеты, т.к. вся старая логика основана на том, что последняя свеча сформирована и ее данные корректны и доступны, что как раз нарушается в текущей версии.
Ну это да.

Я имел в виду, что, возможно, при проектировании логики работы имелось в виду, что торговый и неторговый (е) ряды будут привязаны к разным инструментам. При привязке к одному инструменту м.б. происходит нечто непредвиденное авторами.
Но я скорее склоняюсь к тому, что корень проблемы - в вызовах OnUpdate по тикам неторговых ТФ (чаще ли, реже ли торгового они происходят - неважно).
Во-первых, я не вижу в этом никакой разумной логики: если я хочу определенной частоты вызовов OnUpdate, то совершенно неуместно подсовывать мне другие (фактически неожиданные) события.
Во-вторых, как раз неожиданные события могут провоцировать неправильные рассчеты, т.к. вся старая логика основана на том, что последняя свеча сформирована и ее данные корректны и доступны, что как раз нарушается в текущей версии.
-
- Сообщения: 535
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 92 раза
Re: Несколько входных рядов в стратегиях
Хочу продолжить еще и о последней "живой" свечке.
Давайте представим, что у нас торговый ТФ=М5, а неторговый - М3. Даже если убрать "нештатные" вызовы по М3, окажется, что в какие-то моменты вызова М5 последняя свеча М3 будет еще неоконченной, т.к. периоды не кратны.
Весьма вероятно (хотя это еще подлежит проверке), что в реале это не проблема, т.к. там в этой последней свече просто будут текущие живые данные.
В тестировании свеча окажется просто пустой или - еще хуже - забита каким-то мусором.
Насколько я представляю (если вру - поправьте, плиз), данные с сервера идут по нескольким базовым ТФ (S1, M1, D1; может быть еще и по Н1), остальные доступные нам ТФ вычисляются из них. Это намекает на то, что в тестировании нужно перед вызовом OnUpdate формировать/имитировать живую свечку неторгового ТФ по данным из базового ТФ, доступным в момент вызова OnUpdate, иначе будет лажа (она и есть, ведь Евгений это показал на примере того, что в начале дня в тесте часовая свеча точно недоступна).
Давайте представим, что у нас торговый ТФ=М5, а неторговый - М3. Даже если убрать "нештатные" вызовы по М3, окажется, что в какие-то моменты вызова М5 последняя свеча М3 будет еще неоконченной, т.к. периоды не кратны.
Весьма вероятно (хотя это еще подлежит проверке), что в реале это не проблема, т.к. там в этой последней свече просто будут текущие живые данные.
В тестировании свеча окажется просто пустой или - еще хуже - забита каким-то мусором.
Насколько я представляю (если вру - поправьте, плиз), данные с сервера идут по нескольким базовым ТФ (S1, M1, D1; может быть еще и по Н1), остальные доступные нам ТФ вычисляются из них. Это намекает на то, что в тестировании нужно перед вызовом OnUpdate формировать/имитировать живую свечку неторгового ТФ по данным из базового ТФ, доступным в момент вызова OnUpdate, иначе будет лажа (она и есть, ведь Евгений это показал на примере того, что в начале дня в тесте часовая свеча точно недоступна).
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: Несколько входных рядов в стратегиях
исключив неторговый ряд (M1) из страегии получаем нормальные CurrentPLper() и CurrentPL():
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:30:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:09:35:00;0,0464;36;77640;77676
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:09:40:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:10:35:00;0,1093;85;77786;77871
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:10:50:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:11:05:00;0,0064;5;77947;77952
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:11:10:00
BUY: Input1: BarDate:09.04.2021 0:00:00 BarTime:15:40:00;0,0141;11;78027;78038
BUY: Input1: BarDate:09.04.2021 0:00:00 BarTime:15:45:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:07:30:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:09:35:00;0,0464;36;77640;77676
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:09:40:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:10:35:00;0,1093;85;77786;77871
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:10:50:00
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:11:05:00;0,0064;5;77947;77952
BUY: Input1: BarDate:08.04.2021 0:00:00 BarTime:11:10:00
BUY: Input1: BarDate:09.04.2021 0:00:00 BarTime:15:40:00;0,0141;11;78027;78038
BUY: Input1: BarDate:09.04.2021 0:00:00 BarTime:15:45:00
никогда такого не было и вот опять
-
- Сообщения: 30
- Зарегистрирован: 03 окт 2020, 22:38
- Благодарил (а): 12 раз
- Поблагодарили: 7 раз
Re: Несколько входных рядов в стратегиях
Ну я ведь это и писал ещё в первом сообщении )))
viewtopic.php?f=6&t=1103&start=10#p6115
Правда там была опечатка, которая не влияла на результат.
viewtopic.php?f=6&t=1103&start=10#p6115
Правда там была опечатка, которая не влияла на результат.
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: Несколько входных рядов в стратегиях
Да, верно, не приметил, повторил тоже самое
Вообщем вся информация здесь есть, есть над чем подумать разработчику.
Не факт что это последний баг по этой теме.

Вообщем вся информация здесь есть, есть над чем подумать разработчику.
Не факт что это последний баг по этой теме.
никогда такого не было и вот опять
Вернуться в «Стратегии и роботы»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 15 гостей