Перейти к содержимому


* * - - - 3 голосов

Wealth-Lab скрипты: функции, индикаторы, части кода


  • Please log in to reply
230 ответов в этой теме

#21 Trader_Йонах

Trader_Йонах
  • Guests

Отправлено 17 November 2007 - 04:19 PM

ApplyAutoStops
жутко полезный блок функций, который позволяет разгрузить скрипт и сосредоточиться на основной идее стратегии. значения автостопов задаются в барах (для TimeBasedExit), в % (по умолчанию), а также в деньгах и пунктах (настройка через функцию SetAutoStopMode)

типичный пример:

InstallProfitTarget ( X );
InstallStopLoss ( Y );
InstallTimeBasedExit ( Z );

for Bar := 1 to BarCount - 1 do
begin
ApplyAutoStops( Bar );

#22 kot99

kot99

    Гуру нашего муравейника

  • Трейдеры
  • PipPipPipPip
  • 1002 сообщений

Отправлено 30 November 2007 - 01:01 PM

гуру WL помогайте...
создал я, предположим, некую свою серию путем вычитания некой серии1 из серии2.
и вот при выводе полученой серии в отдельный Pane (#ThickHist) мне бы хотелось некоторые ее значения раскрасить разными цветами. как сие реализовать ?
сенкс заранее.

#23 goga

goga

    Гуру нашего муравейника

  • Трейдеры
  • PipPipPipPip
  • 3470 сообщений

Отправлено 30 November 2007 - 01:10 PM

Цитата(kot99 @ 30.11.2007, 15:01) Просмотреть сообщение

гуру WL помогайте...
создал я, предположим, некую свою серию путем вычитания некой серии1 из серии2.
и вот при выводе полученой серии в отдельный Pane (#ThickHist) мне бы хотелось некоторые ее значения раскрасить разными цветами. как сие реализовать ?
сенкс заранее.

Если раскрасить по принципу: индикатор больше такого-то значения - синий, меньше такого-то - красный, то вот.

if RSI( Bar, 10 ) > 50 then
SetSeriesBarColor( Bar, RSI( Bar, 10 ), #Green );
if RSI( Bar, 10 ) < 30 then
SetSeriesBarColor( Bar, RSI( Bar, 10 ), #red );

Хотя из этого можно по любому условию раскрасить.

#24 kot99

kot99

    Гуру нашего муравейника

  • Трейдеры
  • PipPipPipPip
  • 1002 сообщений

Отправлено 30 November 2007 - 01:37 PM

Цитата(goga @ 30.11.2007, 16:10) Просмотреть сообщение

Цитата(kot99 @ 30.11.2007, 15:01) Просмотреть сообщение

гуру WL помогайте...
создал я, предположим, некую свою серию путем вычитания некой серии1 из серии2.
и вот при выводе полученой серии в отдельный Pane (#ThickHist) мне бы хотелось некоторые ее значения раскрасить разными цветами. как сие реализовать ?
сенкс заранее.

Если раскрасить по принципу: индикатор больше такого-то значения - синий, меньше такого-то - красный, то вот.


Угу. Сенкс. Получилось smile.gif

#25 Trader_Йонах

Trader_Йонах
  • Guests

Отправлено 22 January 2008 - 11:43 PM

значения индикатора MACD (26,12,9) расчитанные по идентичным формулам (как видно из руководства) в WLD и в Смарте дают сильно разные величины. никак не найду в чем дело. и там и там использую стандартную встроенную функцию.

#26 Хемуль

Хемуль

    Новичок

  • Трейдеры
  • Pip
  • 78 сообщений

Отправлено 20 February 2008 - 05:48 PM

Вопрос про качество тестера WLD.

Как протестить стратегию на тиковой истории?
Вообще - я смотрю на скрипты которые там есть. И меня очень смущает что там не живой тестер, котрый бы симулировал торги а какой-то цикл, в котором сам ChartScript отрисовывает на истории где бы он купил, где продал. Подсмотреть в будущее как 2 пальца. Это нормально или я чего не понял?

#27 Trader_Йонах

Trader_Йонах
  • Guests

Отправлено 20 February 2008 - 07:56 PM

Цитата(Хемуль @ 20.2.2008, 19:48) Просмотреть сообщение

Вопрос про качество тестера WLD.

Как протестить стратегию на тиковой истории?
Вообще - я смотрю на скрипты которые там есть. И меня очень смущает что там не живой тестер, котрый бы симулировал торги а какой-то цикл, в котором сам ChartScript отрисовывает на истории где бы он купил, где продал. Подсмотреть в будущее как 2 пальца. Это нормально или я чего не понял?

что такое "живой тестер"? вы можете запустить ChartScript как на исторических данных (на одном инструменте или на портфеле), так и в он-лайне - об этом речь? и то и другое возможно в WLD.
В ChartScript вы прописываете условия сетапа: когда входить, когда выходить. Затем запускаете на истории и система исполняет его каждый раз, когда складываются заданные условия по тестируемому инструменту. Кроме этого, в WLD есть метод тестирования Монте-Карло, который дает результаты теста не как континиум от первого до последнего бара, а как итог нескольких случайных входов в предоставленную ему историю.
подсмотреть в будущее может только сам автор МТС. но в трезвом уме и здравой памяти это никому не нужно.

#28 Хемуль

Хемуль

    Новичок

  • Трейдеры
  • Pip
  • 78 сообщений

Отправлено 21 February 2008 - 11:13 AM

Может быть я что-то не понял, но в ChartScript основным элементом является цикл:

for Bar := 20 to BarCount - 1 do
begin
............
end;

А если я в цикле сам напишу условие типа:

if CrossOver( Bar-1, AroonDownSeries( #Close, 20 ),
AroonUpSeries( #Close, 20 ) ) then
begin
BuyAtMarket( Bar + 1, '' );
end

????
Второй вопрос к WLD!!!
А что с индикаторами? Допустим времени 11:10 и мы торгуем на часах. При такой схеме индюк считаются зарание по закрытию сформировавшегося бара. Т.е. в примере выше Aroon уже посчитан. А потом мы поставим систему на реальный рынок. И что будет? А в реальном рынке в 11:10 Aroon будет совсем другой т.к. бар ещё очень далёк до закрытия! И тест будет заметно отличаться от реала.


???
Как вообще протестить интрадейную систему на тиках?


На самом деле я пришёл с MetaTrader и немного Омеги. Там скрипт системы просто
If condition then By

А дальше система симулирует торги по каждому тику. Может быть я не совсем понял на счёт WLD. Но при такой организации ChartScript это никуда нафиг не годится!
В МetaTrader есть вариант тестирования только по барам. И результат на столько разнится с тем что получается при тестировании по тикам что полный Алес!!!

#29 Trader_Йонах

Trader_Йонах
  • Guests

Отправлено 24 February 2008 - 02:22 PM

для тех кто осваивает Wealth-Lab:
еще раз рекомендую составлять первые МТС с помощью File / New ChartScript (Wizard Mode). На первой вкладке Entries And Exits выбираем базовые условия входа / выхода в позицию (перетаскиваем мышкой в правое поле). На следующей вкладке Conditions навешиваем на них фильтры из индикаторов и другие условия управления позицией (также перетаскивая и прикрепляя к уже существующим входам или выходам соответственно). Внизу на сером поле задаем параметры выбранного индикатора. Все, МТС готова без знания кода!
Это отличная база для того, чтобы понять как выглядит на языке WLD та МТС, которую вы хотите сваять. Большая часть ответов на вопросы начинающих "как прописать условие" находится ТАМ!
Сам делаю в ней наброски для новых идей для последующей ручной доводки, очень удобная штука. Плюс у шаблона всегда корректно прописаны условия всяких там if / else / end а то в ручной скрипте вдруг возникают иной раз такие глюки как закрытие позиции ДО ее открытия. Причем в таблице трейдов (вкладка Trades) прямо так и пишет гадина и не краснеет. Будьте внимательны, проверяйте визуально трейды на графике!

#30 Hitman

Hitman

    Новичок

  • Трейдеры
  • Pip
  • 66 сообщений

Отправлено 26 February 2008 - 02:40 PM

Цитата(Йонах @ 25.10.2007, 23:34) Просмотреть сообщение

Я сделал это: скрипт Momentum Pinball слово в слово с книги Линды Рашке побежден!
Победа интересна тем, что удалось освоить совмещение дневных индикаторов на интрадей данных и такие нетипичные сигналы как "покупка на максимуме первого часа" на 5 минутном тайм-фрейме.
По этим вопросам если интересно могу подсказать.


И каков результат? ПФ и годовая доходность и просадка?

#31 Hitman

Hitman

    Новичок

  • Трейдеры
  • Pip
  • 66 сообщений

Отправлено 26 February 2008 - 02:44 PM

Вопрос:

При компиляции скрипта постоянно вылетает ошибка "Not a valid Price Series"
Фишка в том, что если запустить скрипт из панели Edit - всё нормально выполняется. Но если запустить скрипт из оптимизатора, то ошибка вылетает. Да и в меню едит тоже самое - то возникает то исчезает.

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

#32 Trader_Йонах

Trader_Йонах
  • Guests

Отправлено 26 February 2008 - 06:31 PM

Цитата(Hitman @ 26.2.2008, 16:40) Просмотреть сообщение

И каков результат? ПФ и годовая доходность и просадка?

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

#33 Trader_Йонах

Trader_Йонах
  • Guests

Отправлено 26 February 2008 - 06:34 PM

Цитата(Hitman @ 26.2.2008, 16:44) Просмотреть сообщение

При компиляции скрипта постоянно вылетает ошибка "Not a valid Price Series"

а Open ChartScript for Debugging чего говорит?

#34 Tasch

Tasch

    Активный участник

  • Трейдеры
  • PipPipPip
  • 420 сообщений

Отправлено 27 February 2008 - 01:05 PM

Здравствуйте, уважаемые форумчане!
Прошу подсказать новичку, как подключить Smarttrade в качестве источника данных для WL. Файлы *.dll с сайта itinvest закачал, а вот их зарегистрировать не получается.
The trend is your friend ©

#35 IlyaIlya

IlyaIlya

    Новичок

  • Трейдеры
  • Pip
  • 83 сообщений

Отправлено 27 February 2008 - 04:04 PM

Цитата(Tasch @ 27.2.2008, 13:05) Просмотреть сообщение

Здравствуйте, уважаемые форумчане!
Прошу подсказать новичку, как подключить Smarttrade в качестве источника данных для WL. Файлы *.dll с сайта itinvest закачал, а вот их зарегистрировать не получается.


Вам нужно копирнуть эти dll, а также текстовые файлы в директорию Wealth Lab'а. Собственно все по инструкции. Ну и версия WL наверное должна быть 3. Четверку я не пробовал.

#36 Trader_Йонах

Trader_Йонах
  • Guests

Отправлено 27 February 2008 - 04:13 PM

Цитата(Tasch @ 27.2.2008, 15:05) Просмотреть сообщение

Здравствуйте, уважаемые форумчане!
Прошу подсказать новичку, как подключить Smarttrade в качестве источника данных для WL. Файлы *.dll с сайта itinvest закачал, а вот их зарегистрировать не получается.

что конкретно не получается из этой инструкции: http://www.itinvest....STM_5_1_MTS.pdf

#37 Hitman

Hitman

    Новичок

  • Трейдеры
  • Pip
  • 66 сообщений

Отправлено 27 February 2008 - 04:45 PM

Написал простенький скриптик торговли по ADX.
Вопросы:
1. почему, когда я пестирую его несколько раз подряд выдаётся разный результат?
2. почему периодически вылетает ошибка List Index Out Of Bounds (-1)?

У меня смутное подозрение что та WLD которую я достал глюкава. Купил у пиратов, может быть фигню подсунули. Попробуйте кто-нидудь plz. Может быть будет без ошибк? Может быть это только у меня такая фигня?

--------------------->
var Bar: integer;
var ADXPeriod,ADXMin: integer;
var ADXPane: integer;

var InitBar: integer;
var InitStatus: integer;
var SignalDuration: integer;
var StopMul: float;

ADXPeriod := 22;
ADXMin := 20;
SignalDuration := 6;
StopMul := 3.5;

// Tute Chart
ADXPane := CreatePane( 55, false, true );
PlotSeries( ADXSeries(ADXPeriod), ADXPane,#Navy,2 ) ;
PlotSeries( DIPlusSeries(ADXPeriod), ADXPane,#Green,0 ) ;
PlotSeries( DIMinusSeries(ADXPeriod), ADXPane,#Red,0 ) ;

// Main loop
for Bar := 20 to BarCount - 1 do
begin

// Open position
if not LastPositionActive then
begin
// Stage 1 - Long
if CrossUnder( Bar, DIPlusSeries(ADXPeriod),DIMinusSeries(ADXPeriod)) then
begin
if ADX(Bar,ADXPeriod) >= ADXMin then
begin
SetBarColor( Bar, #Lime );
InitBar := Bar;
InitStatus := 1;
end;
end;

// Stage 1 - Short
if CrossOver( Bar, DIPlusSeries(ADXPeriod),DIMinusSeries(ADXPeriod)) then
begin
if ADX(Bar,ADXPeriod) >= ADXMin then
begin
SetBarColor( Bar, #Lime );
InitBar := Bar;
InitStatus := -1;
end;
end;

// Stage Position - Long
if InitStatus = 1 then
begin
if PriceHigh(InitBar)<PriceHigh(Bar) then
begin
BuyAtMarket( Bar + 1, '' );
InitStatus := 0;
end;
end;

// Stage Position - Short
if InitStatus = -1 then
begin
if PriceLow(InitBar)>PriceLow(Bar) then
begin
ShortAtMarket( Bar + 1, '' );
InitStatus := 0;
end;
end;

// Expire signal
if Bar-InitBar >SignalDuration then
InitStatus := 0;

end
else // Apply Tral
begin
if PositionLong( LastPosition ) then
begin
CoverAtTrailingStop( Bar + 1,PositionBasisPrice(LastPosition)-ATR(Bar,12)*StopMul,LastPosition,'Tral' );

if CrossOver( Bar, DIPlusSeries(ADXPeriod),DIMinusSeries(ADXPeriod)) then
CoverAtMarket(Bar+1,LastPosition,'Covered');
end
else
begin
CoverAtTrailingStop( Bar + 1,PositionBasisPrice(LastPosition)+ATR(Bar,12)*StopMul,LastPosition,'Tral' );

if CrossUnder( Bar, DIPlusSeries(ADXPeriod),DIMinusSeries(ADXPeriod)) then
CoverAtMarket(Bar+1,LastPosition,'Covered');
end;
end;
end;

#38 IlyaIlya

IlyaIlya

    Новичок

  • Трейдеры
  • Pip
  • 83 сообщений

Отправлено 27 February 2008 - 05:00 PM

Цитата(Hitman @ 27.2.2008, 16:45) Просмотреть сообщение

Написал простенький скриптик торговли по ADX.
Вопросы:
1. почему, когда я пестирую его несколько раз подряд выдаётся разный результат?
2. почему периодически вылетает ошибка List Index Out Of Bounds (-1)?

У меня смутное подозрение что та WLD которую я достал глюкава. Купил у пиратов, может быть фигню подсунули. Попробуйте кто-нидудь plz. Может быть будет без ошибк? Может быть это только у меня такая фигня?



После беглого просмотра:

1). В основном цикле лучше писать так:
for Bar := ADXPeriod to BarCount - 1 do
вместо
for Bar := 20 to BarCount - 1 do

Должна пропасть ошибка List Index Out Of Bounds (-1).

2) Выполнение этого кода возможно в момент, когда InitBar еще не проинициализирован. Может в этом причина нестабильности результатов? Будьте внимательны и все получится :-)
// Expire signal
if Bar-InitBar >SignalDuration then
InitStatus := 0;

#39 goga

goga

    Гуру нашего муравейника

  • Трейдеры
  • PipPipPipPip
  • 3470 сообщений

Отправлено 27 February 2008 - 05:00 PM

Цитата(Hitman @ 27.2.2008, 18:45) Просмотреть сообщение

Написал простенький скриптик торговли по ADX.
Вопросы:
1. почему, когда я пестирую его несколько раз подряд выдаётся разный результат?
2. почему периодически вылетает ошибка List Index Out Of Bounds (-1)?

У меня смутное подозрение что та WLD которую я достал глюкава. Купил у пиратов, может быть фигню подсунули. Попробуйте кто-нидудь plz. Может быть будет без ошибк? Может быть это только у меня такая фигня?

Попробовал на версии 4.3.36, раз 20 перезапускал - результаты стабильны, ошибок не фиксирует.

#40 Hitman

Hitman

    Новичок

  • Трейдеры
  • Pip
  • 66 сообщений

Отправлено 28 February 2008 - 07:41 PM

WLD Rulezzz!

Нужно только проапгрейдить до последней версии (4.0.2 - убогая) а также поставить ригеонал сеттингз Амеровские. И всё работает!




Rambler's Top100 Яндекс.Метрика