У вас не стоит Flash Player
Настройки
#35825 - Sun Jan 15 2012 08:44 PM Блоки "Профит последнего лонга/шорта", пример с ОЗ
Duke Offline
stranger

Registered: Fri Dec 23 2011
Записи: 18
Доброго времени суток роботоделам и трейдерам-энтузиастам:)
Недавно в моем скрипте возникла необходимость в использовании блоков "Профит последнего закрытого Шорта/Лонга". Так как конкретных примеров на форуме я не нашел, решил сваять свои. К счастью, товарищ 777 предоставил код своих блоков из небезызвестной ветки http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=19784#Post19784, на основе которого и были созданы эти два блока. Возможно эти блоки пригодятся кому-то еще, затем и выкладываю их непосредственно, а также пример использования вместе с ОЗ для наглядности.

Итак, сами блоки получают данные о финансовом результате, ЗАФИКСИРОВАННОМ после соответствующего входа. Вход в блок подается из источника, выход можно определить в какую-нибудь формулу.
В примере, который я прилагаю ниже данные блоки участвуют в заполнении Обновляемого значения. Суть решенной в примере задачи в следующем: необходимо было организовать переворот позиции после зафиксированного убытка по стопу. Т.е. До тех пор, пока не будет получен убыток от позиции шорт, к примеру, будут торговаться лонги; после первого полученного убытка появится запрет на открытие лонгов и разрешение на открытие шортов, потом обратно и так далее.
Блоки "ПрофитЛонг(Шорт)" получают здесь число, затем по условию в формуле "Лонг(Шорт)минус" передают его в Обновляемое значение в определенном формулой "Данные для ОЗ" формате(1;-1), на основе которого уже формируется условие на вход.





В предупреждение возможной критики замечу, что скрипт в примере был создан чисто в демонстрационных целях и не претендует на роль полноценного робота.

Теперь об установке блоков. Создайте в папке TSlab новую папку "Handlers", если она еще не создана и скопируйте туда LSprofit.dll из архива. Блоки "Профит последней закрытой позиции Лонг(Шорт)" появятся во вкладке 777 в Tslab(для удобства, так как блоки всеже основаны на исходниках от 777 wink )





Attachments
LSprofit.zip (277 downloads)
Description: LSprofit.zip

Primer1.xml (287 downloads)
Description: Primer1.xml

Primer1a.png (1749 downloads)
Description: Primer1a.png

Primer1.png (2198 downloads)
Description: Primer1.png




Отредактировано Duke (Sun Jan 15 2012 09:03 PM)

Наверх
#38771 - Thu Mar 15 2012 03:13 PM Re: Блоки "Профит последнего лонга/шорта", пример с ОЗ [Re: Duke]
Discrecio Offline
member

Registered: Thu Mar 01 2012
Записи: 124
Duke, к сожалению, не работает твой блок! Делал все, как описано. Есть папка 777 с его блоками, но твой там не появился и скрипт соотв. выдает ошибку. Что посоветуешь для реанимации?



Attachments
1.png (387 downloads)



Отредактировано Discrecio (Thu Mar 15 2012 06:24 PM)

Наверх
#38877 - Fri Mar 16 2012 09:45 PM Re: Блоки "Профит последнего лонга/шорта", пример с ОЗ [Re: Discrecio]
Avgust2047 Offline
journeyman

Registered: Thu Jan 19 2012
Записи: 67
Думаю если так сделать, то заработает.


Attachments
1.png (552 downloads)


Наверх
#38897 - Sat Mar 17 2012 01:49 PM Re: Блоки "Профит последнего лонга/шорта", пример с ОЗ [Re: Avgust2047]
Discrecio Offline
member

Registered: Thu Mar 01 2012
Записи: 124
Avgust2047, ничего не понял!
"Профит последней закрытой позиции" - это любой позиции, а автор, как я понял, данный блок и модифицировал конкретно для лонга и шорта.

Наверх
#39013 - Tue Mar 20 2012 03:51 AM Re: Блоки "Профит последнего лонга/шорта", пример с ОЗ [Re: Discrecio]
Avgust2047 Offline
journeyman

Registered: Thu Jan 19 2012
Записи: 67
Самому до конца не всё понятно.
как я понимаю товарищ 777 в одноименной вкладке выложил все свои наработки, за что отдельное спасибо. Думаю, что "Профит последней закрытой позиции" - это для ЛОНГА, а "Профит последней закрытой позиции ШОРТ" соответственно для шорта, в чём отличие я не знаю, может чисто в программировании, скорее всего.
а к тому что не работает, надо нажать на самом кубике на пузатую стрелочку и из списка выбрать соответствующий данному блоку параметр... или как его назвать, для ПрофитЛонг - "Профит последней закрытой позиции", и для второго по аналогии.

Наверх
#39014 - Tue Mar 20 2012 03:58 AM Re: Блоки "Профит последнего лонга/шорта", пример с ОЗ [Re: Avgust2047]
Avgust2047 Offline
journeyman

Registered: Thu Jan 19 2012
Записи: 67
и к DUKE или ЗНАТОКАМ, у меня тоже есть просьба-вопрос, вернее ОГРОМНАЯ ПРОСЬБА-ВОПРОС!!!
Расскажите пожалуйста обычным текстом логику и принцип построения цепочки к блоку "Условие для ЛОНГ" на примере выложенного в посте скрипта "Primer1.xml".. буду очень признателен.

Наверх
#43412 - Thu Jun 28 2012 03:47 PM Re: Блоки "Профит последнего лонга/шорта", пример с ОЗ [Re: Avgust2047]
Duke Offline
stranger

Registered: Fri Dec 23 2011
Записи: 18
Долгое время меня не было на форуме=). Что-ж, отпишу логику построения на всякий случай.
Итак, первым необходимую информацию берет блок "ПрофитЛонг", соединенный с источником. Он получает данные о финансовом результате закрытой длинной позиции. Далее эта информация анализируется двумя блоками - "Лонгминус" и "Шортминус"(соединен с аналогичным "ПрофитШорт") Как можно видеть, в них прописаны условия формата "Лонг/Шортминус<0. Далее информация передается в блок "ДанныеДляОЗ". Формула "Шортминус?1: Лонгминус?-1:0" означают следующее: Если выполняется условие, описанное в блоке Шортминус(ПрофитШорт<0), или иными словами, если срабатывает блок Шортминус, то задать блоку ОЗ(с ним как раз и соединен блок "УсловиеДляОЗ") значиние "1"; если же срабатывает блок "Лонгминус", то "-1". в противном случае поставить "0". К примеру, если наш робот закроет длинную либо короткую сделку и получит 100 рублей прибыли, то не сработет ни ЛонгМинус ни Шортминус, так как не выполнятся описанные в них условия и ОЗ получит значение "0". Если же робот, например, закроет длинную сделку, и напротив, получит 100 рублей убытка, то сработает блок ЛонгМинус(так как ПрофитЛонг будет равен -100, т.е. ПрофитЛонг<0) и блок ОЗ(обновляемое значение) получит значение "-1".
Итак, после того, как блок ОЗ получил свое значение от блока "УсловиеДля ОЗ", происходит анализ этого самого значения следующим блоком "УсловиеДляЛОНГ". Логика описанного в нем условия "ОЗ>=0" следующая: Так как по условию задачи нам нужно организовать запрет длинной сделки при первом полученном убытке, то к блоку открытия длинных сделок подается условие "Обновляемое значение должно быть больше либо равно 0" - "0" у нас это отсутствие убытка вообще, т.е. сделки будут разрешены, поэтому и начальное значение ОЗ равно 0, когда результатов сделок нет как таковых(это необходимо для того, чтобы робот смот открыть первую сдедку); "1" у нас означает срабатывание условия ШортМинус, т.е. при получении убытка от короткой позиции также будут разрешены длинные сделки, а вот "-1" означает срабатывание блока "ЛонгМинус", т.е. получение убытка от длинной позиции. И вот тут, исходя из условия "ОЗ>=0", следующая длинная сделка будет запрещена, зато разрешена короткая, по условию для ОЗ2 в аналогичной ветке блоков для коротких сделок. Так и происходит в данном примере попеременный "переворот" сделок.

Наверх


Moderator:  ViL, sar