Индикатор Стохастик. Любопытное наблюдение. - страница 2

 

Мдя)

 
Вот бы найти Classic Stochastic из Omega Tradestation 2000i.
 
igor00:
Вот бы найти Classic Stochastic из Omega Tradestation 2000i.
Вот, пожалуйста:
{*******************************************************************
Description : This Indicator plots a Stochastic with adjustable %K & %D
Provided By : Omega Research, Inc. (c) Copyright 1999
********************************************************************}

Input: Length(5), KAdjust(3), DAdjust(3), OverBought(80), OverSold(20);
Variables: KAdjusted(0), DAdjusted(0);

KAdjusted = SlowKClassic(KAdjust, Length);
DAdjusted = SlowDClassic(DAdjust, Length);

IF CurrentBar > Length Then Begin
Plot1(KAdjusted, "%K");
Plot2(DAdjusted, "%D");
End;
Plot3(OverBought, "OverBought");
Plot4(OverSold, "OverSold");

{Alert Criteria}
If Plot1 > OverBought Then
Alert("The %K line is in overbought territory")
Else
If Plot1 < OverSold Then
Alert("The %K line is in oversold territory");

{Stochastics Expert Commentary}
#BeginCmtry
Commentary(ExpertStochastic(Plot1, Plot2, Plot3, Plot4));
#End;

{*******************************************************************
Description : This Function returns Slow Stochastic %K Classic
Provided By : Omega Research, Inc. (c) Copyright 1999
********************************************************************}

Inputs: FastKLen(NumericSimple), Length(NumericSimple);

SlowKClassic = Average(FastK(FastKLen), Length);


{*******************************************************************
Description: Fast Stochastic %K
Provided By: Omega Research, Inc. (c) Copyright 1999
********************************************************************}

Inputs: Length(NumericSimple);

Value1 = Lowest(Low, Length);
Value2 = Highest(High, Length) - Value1;
Value3 = Close;

If Value2 > 0 Then
FastK = (Value3 - Value1) / Value2 * 100
Else
FastK = 0;

{*******************************************************************
Description : This Function returns Slow Stochastic %D Classic
Provided By : Omega Research, Inc. (c) Copyright 1999
********************************************************************}

Inputs: FastKLen(NumericSimple), Length(NumericSimple);

SlowDClassic = Average(FastDClassic(FastKLen), Length);

{*******************************************************************
Description : This Function returns FastDClassic
Provided By : Omega Research, Inc. (c) Copyright 1999
********************************************************************}

Inputs : KLength(NumericSimple);

FastDClassic = Average(FastK(KLength), 3);
 
SK. писал (а):

Не. 99/1.

- "Стохастик имеет отвратительное свойство менять свои значения задним числом"?


Я не совсем корректно выразился.

На самом деле значения меняются задним числом если пересчитываются последние несколько баров.

Если расчитывается исключительно 0-бар тогда всё ОК.

Это наглядно можно увидеть если например отобразить Стохастик с MN1 на W1.

Жаль не умею видео делать для форума, а то показал бы.

99/1 Форева.

 
Всегда сторого получается, что число прибыльных сделок из длинных - до 80%

А из коротких, - в лучшем случае, - 50/55 %.

Причем это при входах и по сигнальной линии, и по уровням перекупленности/перепроданности, и даже по iOnArray ...

Вывод, - при использовании Стохастика следует отдельно задавать параметры в бай и в селл. Т.Е. применять два индикатора.

Вывод вобщем-то спорный.

Длинные позиции в целом более успешны потому что наблюдается долгосрочная восходящая тенденция. Стохастик непричем.

 
Topor:
Всегда сторого получается, что число прибыльных сделок из длинных - до 80%

А из коротких, - в лучшем случае, - 50/55 %.

Причем это при входах и по сигнальной линии, и по уровням перекупленности/перепроданности, и даже по iOnArray ...

Вывод, - при использовании Стохастика следует отдельно задавать параметры в бай и в селл. Т.Е. применять два индикатора.

Вывод вобщем-то спорный.

Длинные позиции в целом более успешны потому что наблюдается долгосрочная восходящая тенденция. Стохастик непричем.

ИМХО из спорного вывода можно сделать другой вывод: Forex ассиметричен. Если так тогда можно сделать торговая систему у которой раздельные сигналы для длинных и коротких позиций и раздельная оптимизация этих сигналов.

Успешная торговая система на принципах несимметричности рынка уже есть см. 'Статья: Нестандартная автоматическая торговля'
 
Topor:
Всегда сторого получается, что число прибыльных сделок из длинных - до 80%

А из коротких, - в лучшем случае, - 50/55 %.

Причем это при входах и по сигнальной линии, и по уровням перекупленности/перепроданности, и даже по iOnArray ...

Вывод, - при использовании Стохастика следует отдельно задавать параметры в бай и в селл. Т.Е. применять два индикатора.

Вывод вобщем-то спорный.

Длинные позиции в целом более успешны потому что наблюдается долгосрочная восходящая тенденция. Стохастик непричем.

Вовсе нет! Я же подчеркивал, что тенденция наблюдается по всем почти парам! И там, где тренд шёл последние год-два (иеновые), и там, где вразнобой движение. Какой может быть, например, долгосрочный тренд по GBPCHF ? И др. подобным?

А тенденция, - на всех парах !

 
usdjpy:
ИМХО из спорного вывода можно сделать другой вывод: Forex ассиметричен. Если так тогда можно сделать торговая систему у которой раздельные сигналы для длинных и коротких позиций и раздельная оптимизация этих сигналов.

Успешная торговая система на принципах несимметричности рынка уже есть см. 'Статья: Нестандартная автоматическая торговля'



Действительно. Предусмотрел раздельные сигналы в советнике с первого поста. И число прибыльных сделок почти сравнялось по длинным и коротким позициям.
 
leonid553:
usdjpy:
ИМХО из спорного вывода можно сделать другой вывод: Forex ассиметричен. Если так тогда можно сделать торговая систему у которой раздельные сигналы для длинных и коротких позиций и раздельная оптимизация этих сигналов.

Успешная торговая система на принципах несимметричности рынка уже есть см. 'Статья: Нестандартная автоматическая торговля'



Действительно. Предусмотрел раздельные сигналы в советнике с первого поста. И число прибыльных сделок почти сравнялось по длинным и коротким позициям.
Если не жалко! Результат посмотреть можно?
 

Paha, не м0гу найти те параметры с кот. получил тот результат. Даже общую прибыль не запомнил. Сразу после теста поставил на оптимизацию.

И к своему удивлению, после оптимизации обнаружилось, что по коротким позициям так и осталось число прибыльных сделок - не более 52% ! А по длинным доходит иной раз до 75% !

С ног сбился! Не могу восстановить те параметры. Уже всяко прогонял в тестере. Никак! Возможно, действительно, по паре GBPUSD последние годы идет трендовый рынок. Либо по позициям Селл нужно брать зеркальную версию стохастика. Вводить магики в "комментариях" тестера по дл. и кор. позам и разбираться.

А результат после оптимизации - выкладываю.

Символ GBPUSD (Great Britain Pound vs US Dollar) Период 4 Часа (H4) 2006.01.02 00:00 - 2007.08. 31 00:00 (2006.01.01 - 2007.08.31) Модель Все тики (на основе ...

Качество моделирования 90.00%

Начальный депозит 10000.00

Чистая прибыль 4188.54

Прибыльность 1.70 Матожидание выигрыша 16.11

Абсолютная просадка 141.02 Максимальная просадка 355.32 (2.57%) Относительная просадка 2.86% (341.00)

Всего сделок 260

Короткие позиции (% выигравших) 132 (50.76%)

Длинные позиции (% выигравших) 128 (65.63%)

Прибыльные сделки (% от всех) 151 (58.08%) Убыточные сделки (% от всех) 109 (41.92%)

Самая большая прибыльная сделка 130.00 убыточная сделка -60.56

Средняя прибыльная сделка 67.34 убыточная сделка -54.86

Максимальное количество непрерывных выигрышей (прибыль) 7 (316. 22) непрерывных проигрышей (убыток) 5 (-233.58)

Оптимизировал только периоды Стохастика по длинным и корокким позициям. И стопы. Трал не оптимизировал.

int start()
  {
//*********************************************************************
// для покупки
double StochK_0=iStochastic(NULL, 0, K_period,D_period,3,MODE_SMA,0,MODE_MAIN, 0);
double StochK_1=iStochastic(NULL, 0, K_period,D_period,3,MODE_SMA,0,MODE_MAIN, 1);
double StochD_0=iStochastic(NULL, 0, K_period,D_period,3,MODE_SMA,0,MODE_SIGNAL, 0);
// для продажи
double _StochK_0=iStochastic(NULL, 0, K_period_,D_period_,3,MODE_SMA,0,MODE_MAIN, 0);
double _StochK_1=iStochastic(NULL, 0, K_period_,D_period_,3,MODE_SMA,0,MODE_MAIN, 1);
double _StochD_0=iStochastic(NULL, 0, K_period_,D_period_,3,MODE_SMA,0,MODE_SIGNAL, 0);
Причина обращения: