#35825 - Sun Jan 15 2012 08:44 PM
Блоки "Профит последнего лонга/шорта", пример с ОЗ
|
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  )
Attachments
LSprofit.zip (277 downloads)Description: LSprofit.zipPrimer1.xml (287 downloads)Description: Primer1.xml Primer1a.png (1749 downloads)Description: Primer1a.pngPrimer1.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]
|
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]
|
journeyman
Registered: Thu Jan 19 2012
Записи: 67
|
Думаю если так сделать, то заработает.
Attachments
1.png (552 downloads)
|
Наверх
|
|
|
|
#38897 - Sat Mar 17 2012 01:49 PM
Re: Блоки "Профит последнего лонга/шорта", пример с ОЗ
[Re: Avgust2047]
|
member
Registered: Thu Mar 01 2012
Записи: 124
|
Avgust2047, ничего не понял! "Профит последней закрытой позиции" - это любой позиции, а автор, как я понял, данный блок и модифицировал конкретно для лонга и шорта.
|
Наверх
|
|
|
|
#39013 - Tue Mar 20 2012 03:51 AM
Re: Блоки "Профит последнего лонга/шорта", пример с ОЗ
[Re: Discrecio]
|
journeyman
Registered: Thu Jan 19 2012
Записи: 67
|
Самому до конца не всё понятно. как я понимаю товарищ 777 в одноименной вкладке выложил все свои наработки, за что отдельное спасибо. Думаю, что "Профит последней закрытой позиции" - это для ЛОНГА, а "Профит последней закрытой позиции ШОРТ" соответственно для шорта, в чём отличие я не знаю, может чисто в программировании, скорее всего. а к тому что не работает, надо нажать на самом кубике на пузатую стрелочку и из списка выбрать соответствующий данному блоку параметр... или как его назвать, для ПрофитЛонг - "Профит последней закрытой позиции", и для второго по аналогии.
|
Наверх
|
|
|
|
#39014 - Tue Mar 20 2012 03:58 AM
Re: Блоки "Профит последнего лонга/шорта", пример с ОЗ
[Re: Avgust2047]
|
journeyman
Registered: Thu Jan 19 2012
Записи: 67
|
и к DUKE или ЗНАТОКАМ, у меня тоже есть просьба-вопрос, вернее ОГРОМНАЯ ПРОСЬБА-ВОПРОС!!! Расскажите пожалуйста обычным текстом логику и принцип построения цепочки к блоку "Условие для ЛОНГ" на примере выложенного в посте скрипта "Primer1.xml".. буду очень признателен.
|
Наверх
|
|
|
|
#43412 - Thu Jun 28 2012 03:47 PM
Re: Блоки "Профит последнего лонга/шорта", пример с ОЗ
[Re: Avgust2047]
|
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 в аналогичной ветке блоков для коротких сделок. Так и происходит в данном примере попеременный "переворот" сделок.
|
Наверх
|
|
|
|
|
|