Автор |
Сообщение |
Skornet
Зарегистрирован: 22.02.2014
Сообщения: 31
Откуда: как и все
|
Опять функция PREV в формуле, не понимаю как перевести.
Код: |
SVE_HA_Tema_ZL
avg := Input("Temagemiddelde? ",1,200,55);
haOpen:=(Ref((O+H+L+C)/4,-1) + PREV)/2; -эта строка
haC:=((O+H+L+C)/4+haOpen+Max(H,haOpen)+Min(L,haOpen))/4;
TMA1:= Tema(haC,avg);
TMA2:= Tema(TMA1,avg);
Diff:= TMA1 - TMA2;
ZlHa:= TMA1 + Diff;
ZlHa
|
Перевёл так, на большее меня не хватило
Код: |
THA = Param("Tema HA",55, 1, 200,1);
haOpen = Ref((O+H+L+C)/4,-1);// /2 AMA(
haC = ((O+H+L+C)/4 + haOpen + Max(H,haOpen) + Min(L,haOpen))/4;
TMA1 = TEMA(haC,THA);
TMA2 = TEMA(TMA1,THA);
Diff = TMA1 - TMA2;
ZlHa = TMA1 + Diff;
Plot(ZlHa, "ZlHa", colorGreen, styleDots);
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); |
http://stocata.org/metastock/ha_tema.html |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вместо
Код: |
haOpen:=(Ref((O+H+L+C)/4,-1) + PREV)/2; -эта строка |
напиши так
Код: |
haOpen = 0;
OHLC = (O+H+L+C)/4;
for( i = 1; i < BarCount; i++ )
{
haOpen[i] = (OHLC[i-1] + haOpen[i-1])/2;
} |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Skornet
Зарегистрирован: 22.02.2014
Сообщения: 31
Откуда: как и все
|
Добрый вечер Олег!
Как всегда всё просто, как гениальное.
СПАСИБО!!! |
Последний раз редактировалось: Skornet (Пн Июн 23, 2014 11:45 pm), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение |
|
Skornet
Зарегистрирован: 22.02.2014
Сообщения: 31
Откуда: как и все
|
Кому интересно и пригодится, вся формула
Код: |
Tpd = Param("TEMA period", 55, 1, 200, 1);
TMA1 = TEMA((H+L+C)/3,Tpd);
TMA2 = TEMA(TMA1,Tpd);
Diff = TMA1 - TMA2;
ZlCl = TMA1 + Diff;
Plot(ZlCl, "ZlCl", colorRed, styleDots);
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
THA = Param("Tema HA",55, 1, 200,1);
haOpen = 0;
OHLC = (O+H+L+C)/4;
for( i = 1; i < BarCount; i++ )
{
haOpen[i] = (OHLC[i-1] + haOpen[i-1])/2;
}
haC = (OHLC + haOpen + Max(H,haOpen) + Min(L,haOpen))/4;
TMA1 = TEMA(haC,THA);
TMA2 = TEMA(TMA1,THA);
Diff = TMA1 - TMA2;
ZlHa = TMA1 + Diff;
Plot(ZlHa, "ZlHa", colorGreen, styleDots); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
Nero Wolfe
Зарегистрирован: 17.03.2010
Сообщения: 174
|
По моему что то тут не так
У вас ТМА1 и ТМА2 дважды рассчитывается в коде, но разными методами, правильно ли это?
В метастоковском коде эти две линии разделены в два индикатора, там все нормально, но тут вы их слили в один код...
Вдогонку с того же сайта индикатор SVAPO or "Short term Volume And Price Oscillator"
Код: |
//calculate heikin-ashi closing average haCl
haOpen = 0;
OHLC = ( O + H + L + C ) / 4;
for ( i = 1; i < BarCount; i++ )
{
haOpen[i] = ( OHLC[i-1] + haOpen[i-1] ) / 2;
}
haCl = ( ( O + H + L + C ) / 4 + haOpen + Max( H, haOpen ) + Min( L, haOpen ) ) / 4;
//inputs
period = Param( "SVAPO period", 8, 2, 20, 1 );
cutoff = Param( "Minimum %o price change", 0.05, 0, 10, 0.01 );
devH = Param( "StDev High", 1.5, 0.1, 5, 0.1 );
devL = Param( "StDev Low", 1.3, 0.1, 5, 0.1 );
stdevper = Param( "StDev Period", 100, 1, 200, 1 );
//Smooth HaCl closing price
haC = Tema( haCl, period / 1.6 );
//MA of Volume to limit extremes
vave = Ref( MA( V, period * 5 ), -1 );
vmax = vave * 2;
vc = IIf( V < vmax, V, vmax );
//Basic volume trend
vtr = Tema( LinRegSlope( V, period ), period );
//SVAPO result of price and volume
SVAPO = Tema( Sum( IIf( haC > ( Ref( haC, -1 ) * ( 1 + cutoff / 1000 ) ) AND ( vtr >= Ref( vtr, -1 ) OR Ref(vtr,-1) >= Ref( vtr, -2 ) ), vc, IIf( haC < ( Ref( haC, -1 ) * ( 1 - cutoff / 1000 ) ) AND ( vtr > Ref( vtr, -1 ) OR Ref(vtr,-1) > Ref( vtr, -2 ) ), -vc, 0 ) ), period ) / ( vave + 1 ), period );
Plot( devH*Stdev( SVAPO, stdevper ), "", colorWhite, styleDashed );
Plot( -devL*Stdev( SVAPO, stdevper ), "", colorWhite, styleDashed );
Plot( 0, "", colorWhite, styleline );
Plot( SVAPO, "SVAPO", colorBlue, styleLine ); |
вроде получилось что то похожее на его картинку
хотя у меня есть сомнения по поводу вот такого куска метастоковского кода:
Код: |
Alert(vtr>=Ref(vtr,-1),2) |
судя по описанию похоже на функцию Hold, но не уверен...
я перевел вот так:
Код: |
( vtr > Ref( vtr, -1 ) OR Ref(vtr,-1) > Ref( vtr, -2 ) ) |
|
_________________ Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает. |
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|