Программы для трейдеров

Системы на основе скользящих

MetaStock

1MA-S&R

Система с открытием и закрытием позиций при пересечении средней скользящей - МА (S&R – открытие новой позиции всегда означает закрытие предыдущей позиции, - разворот или реверс).
Enter Long
C > Mov(C,opt1,E) AND Ref(C,-1) <= Ref( Mov(C,opt1,E), -1)
Exit Long
C < Mov(C,opt1,E)
Enter Short
C < Mov(C,opt1,E) AND Ref(C,-1) >= Ref( Mov(C,opt1,E), -1)
Exit Short
C > Mov(C,opt1,E)

MAcross&PbСhan

Enter Long
BarsSince(Cross(C, Mov(C, opt1, S))) < opt2 AND BarsSince(Cross(C, Mov(C, opt1, S)))>0 
AND L < LLV(Ref(LOW, -1), opt3)

Exit Long
C < Mov(C, opt1, S)
Enter Short
BarsSince(Cross( Mov(C, opt1, S), C)) < opt2 AND BarsSince(Cross( Mov(C, opt1, S), C)) >0 AND H > HHV(Ref(HIGH, -1), opt3)
Exit Short
C > Mov(C, opt1, S)

Позиция закрывается, если цена закрывается по другую сторону cкользящей - МА. Вариант выхода из позиции и открытие в  противоположную сторону получается, если правила выхода из позиций заменить на:

Exit Long L < LLV(Ref(LOW, -1), opt3)
Exit Short H > HHV(Ref(HIGH, -1), opt3)

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

AND DX(opt4) > opt5 AND PDI(opt4) > MDI(opt4),

а к правилу открытия коротких позиций добавить

AND DX(opt4) > opt5 AND PDI(opt4) < MDI(opt4)

1MA-3CC_eаc

3 consecutive closing beyond MA with exit after closing on backward cross

Открытие позиции при пересечении МА при тройном закрытии за MАn, с выходом из позиции по обратному пересечению МА
opt1 – длина МА (n)

Enter Long
C> Mov(C,opt1,S) AND Ref(C> Mov(C,opt1,S), -1)
AND Ref(C> Mov(C,opt1,S), -2) 
Exit Long
C< Mov(C,opt1,S)
Enter Short
C<= Mov(C,opt1,S) AND Ref(C<= Mov(C,opt1,S), -1) 
AND Ref(C<= Mov(C,opt1,S), -2)
Exit Short
C> Mov(C,opt1,S)

Позиция закрывается, если цена закрывается по другую сторону скользящей средней - МА. Возможен вариант, когда для закрытия используется МА другой длины, чем МА открытия.

2MАcross_S&R

S&R система с открытием позиций по пересечению двух МА - скользящих средних с разными периодами рпасчета.

Enter Long
Cross( Mov(C, opt1, S), Mov(C, opt2, S))
Exit Long
Cross( Mov(C, opt2, S), Mov(C, opt1, S))
Enter Short
Cross( Mov(C, opt2, S), Mov(C, opt1, S))
Exit Short
Cross( Mov(C, opt1, S), Mov(C, opt2, S))

3MАcrossovers

Система с тремя скользящими средними - МА, позиция открывается по пересечению короткой и самой медленной МА, а закрывается по противоположному пересечению короткой и средней МА.

Enter Long
Cross(Mov(C, opt1, S), Mov(C, opt3, S))
Exit Long
Mov(C, opt1, S) < Mov(C, opt2, S)
Enter Short
Cross( Mov(C, opt3, S), Mov(C, opt1, S))
Exit Short
Mov(C, opt1, S) > Mov(C, opt2, S)

4MАcrossovers

Stop&Revers система, позиции открываются, если пары скользящих средних ересекаются, если другая пара МА подтверждает направление этого пересечения

Enter Long
Cross(Mov(C, opt1, S), Mov(C, opt2, S)) AND Mov(C, opt3, S) > Mov(C, opt4, S) OR
Cross(Mov(C, opt3, S), Mov(C, opt4, S)) AND Mov(C, opt1, S) > Mov(C, opt2, S)
Exit Long
Cross(Mov(C, opt2, S), Mov(C, opt1, S)) AND Mov(C, opt3, S) < Mov(C, opt4, S) OR
Cross(Mov(C, opt4, S), Mov(C, opt3, S)) AND Mov(C, opt1, S) < Mov(C, opt2, S)
Enter Short
Cross(Mov(C, opt2, S), Mov(C, opt1, S)) AND Mov(C, opt3, S) < Mov(C, opt4, S) OR
Cross(Mov(C, opt4, S), Mov(C, opt3, S)) AND Mov(C, opt1, S) < Mov(C, opt2, S)
Exit Short
Cross(Mov(C, opt1, S), Mov(C, opt2, S)) AND Mov(C, opt3, S) > Mov(C, opt4, S) OR
Cross(Mov(C, opt3, S), Mov(C, opt4, S)) AND Mov(C, opt1, S) > Mov(C, opt2, S)

MACDsystem

Stop&Revers система, позиции открываются, если линии MACD пересекается с сигнальной (сглаженной) линией.

Enter Long
Cross(Mov(C,opt1,E) - Mov(C,opt2, E), Mov(Mov(C,opt1,E) - Mov(C,opt2, E),opt3,E))
Exit Long
Cross(Mov(Mov(C,opt1,E) - Mov(C,opt2, E),opt3,E), Mov(C,opt1,E) - Mov(C,opt2, E))
Enter Short
Cross(Mov(Mov(C,opt1,E) - Mov(C,opt2, E),opt3,E), Mov(C,opt1,E) - Mov(C,opt2, E))
Exit Short
Cross(Mov(C,opt1,E) - Mov(C,opt2, E), Mov(Mov(C,opt1,E) - Mov(C,opt2, E),opt3,E))

Системы на основе ценовых диапазонов

Envel_break

Stop&Revers система прорыва конверта

Enter long
Cross(C,(1+opt1)* Mov(C, opt2, S))
Exit long 
Cross((1-opt1)* Mov(C, opt2, S), C)
Enter short 
Cross((1-opt1)* Mov(C, opt2, S), C)
Exit short 
Cross(C,(1+opt1)* Mov(C, opt2, S))

Envel_ antitrend

Антитрендовая Stop&Revers система возврата в конверт

Enter long 
Cross((1-opt1)* Mov(C, opt2, S), C)
Exit long 
Cross(C,(1+opt1)* Mov(C, opt2, S))
Enter short
Cross(C,(1+opt1)* Mov(C, opt2, S))
Exit short 
Cross((1-opt1)* Mov(C, opt2, S), C)

ExtraOpt

Extraordinary opportunities system. Open на выходе МА из конверта.

Enter Long
Cross(Mov(C,opt1,S), (1+opt3) * Mov(C,opt2,S)) AND Mov(C,opt1,S)> Ref(Mov(C,opt1,S),-1)
Enter Short
Cross((1-opt3)*Mov(C,opt2,S), Mov(C,opt1,S)) AND
Mov(C,opt1,S)< Ref(Mov(C,opt1,S),-1)

Добавлено условие, чтобы МА в момент пересечения границы конверта была направлена в сторону пересечения (росла при выходе выше верхней линии и убывала при выходе ниже нижней линии).

BolBand_reversal

Антитрендовая система, открытие позиций, если цена возвращается внутрь Bollinger Band; позиция закрывается при пересечении противоположной границы канала Bollinger Band.

Enter Long
Cross(C, BBandBot(C, opt1, S, opt2))
Exit Long
Cross(C, BBandTop(C, opt1, S, opt3))
Enter Short
Cross( BBandTop(C, opt1, S, opt2), C)
Exit Short
Cross(BBandBot(C, opt1, S, opt3), C)

BolBand&RSI

Антитрендовая система, позиции открываются, если Bollinger Bands и RSI одновременно показывают состояние перекупленности/перепроданности

Enter Long
Cross(BBandBot(C, opt1, S, opt2), C) AND RSI(opt3) < opt5
Exit Long
Cross(C, BBandTop(C, opt1, S, opt2)) AND RSI(opt3) > opt4
Enter Short
Cross(C, BBandTop(C, opt1, S, opt2)) AND RSI(opt3) > opt4
Exit Short
Cross(BBandBot(C, opt1, S, opt2), C) AND RSI(opt3) < opt5

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

Кeltner Channel
Enter Long
Cross(C, Mov((C+H+L)/3, opt1, S) + Mov(H-L, opt1, S)) 
Exit Long
C < Mov((C+H+L)/3, opt1, S)
Enter Short
Cross(Mov((C+H+L)/3, opt1, S) - Mov(H-L, opt1, S), C) 
Exit Short
C> Mov((C+H+L)/3, opt1, S)

STARC Band

Enter Long
Cross(C, Mov(C,opt1, S) + opt2* ATR(opt3)) 
Exit Long
C < Mov(C, opt1, S)
Enter Short
Cross(Mov(C, opt1, S) - opt2* ATR(opt3), C) 
Exit Short
C > Mov(C, opt1, S)

Parabolic&MA

Enter Long
Ref(C,-1)<Ref(SAR(opt1, opt2),-1) AND C>SAR(opt1, opt2)
AND C > Mov(C, opt3,S)
Enter Short
Ref(C,-1)>Ref(SAR(opt1, opt2),-1) AND C<SAR(opt1, opt2)
AND C < Mov(C, opt3,S)

VolatilitySyst_ATR

Enter Long
Cross(C,Ref(C + opt2* ATR(opt1), -1))
Enter Short
Cross(Ref(C - opt2* ATR(opt1), -1), C)

ChannelReturning

Stop&Revers система возврата в канал

Enter Long
Cross(LLV(Ref(LOW, -1) , opt1), C)
Exit Long
Cross(C, HHV(Ref(HIGH, -1), opt1))
Enter Short
Cross(C, HHV(Ref(HIGH, -1), opt1))
Exit Short
Cross(LLV(Ref(LOW, -1) , opt1), C)

ChannellBreakout

Stop&Revers система прорыва канала

Enter Long
Cross(C, HHV(Ref(HIGH, -1), opt1))
Exit Long
Cross(LLV(Ref(LOW, -1) , opt1), C)
Enter Short
Cross(LLV(Ref(LOW, -1) , opt1), C)
Exit Short
Cross(C, HHV(Ref(HIGH, -1), opt1))

ChanBreak&PullBack

Channel breakout with pull back.

Открытие на прорыве диапазона с последующим откатом; opt1 – параметр окна просмотра границ канала, opt2 – параметр продолжительности ожидания отката

opt3 - параметр окна просмотра канала отката

Enter Long
BarsSince(Cross(C, HHV(Ref(HIGH, -1), opt1))) < opt2 AND BarsSince(Cross(C, HHV(Ref(HIGH, -1), opt1))) >0 AND L < LLV(Ref(LOW, -1), opt3) AND L > LLV(Ref(LOW, -1) , opt1)
Exit Long
C < LLV(Ref(LOW, -1), opt1)
{OR Cross(C, HHV(Ref(HIGH, -1), opt1)) AND BarsSince(Cross(C, HHV(Ref(HIGH, -1), opt1))) >1}
Enter Short
BarsSince(Cross(LLV(Ref(LOW, -1), opt1), C)) < opt2 AND BarsSince(Cross(LLV(Ref(LOW, -1), opt1), C)) > 0 AND H > HHV(Ref(HIGH, -1), opt3) AND H < HHV(Ref(HIGH, -1), opt1)
Exit Short
C > HHV(Ref(HIGH, -1), opt1) 
{OR Cross(LLV(Ref(LOW, -1), opt1), C) AND BarsSince(Cross(LLV(Ref(LOW, -1), opt1), C)) > 1}

Comment. Исключается открытие на свече, которая пробила границу канала. Если за период ожидания отката цена пересекла противоположную границу канала, то позиция не открывается. Открытая позиция ликвидируется, если цена пересекла противоположную границу канала.

LinRegr_extr

Противотрендовая система с границами канала – типа линейного прогноза экстремумов; открытие на откате внутрь канала.

Enter Long
LOW > TSF(LOW, opt1) AND Ref(LOW, -1) > TSF(LOW, opt1)
AND Ref(LOW, -2) > TSF(LOW, opt1)
Enter Short
HIGH < TSF(HIGH, opt1) AND Ref(HIGH, -1) < TSF(HIGH, opt1)
AND Ref(HIGH, -2) < TSF(HIGH, opt1)

Торговые системы на основе трендовых индикаторов

ADX_Wilders

Открытие позиции на пересечении +DI и -DI, при условии, что ADX растет. Уровень открытия позиции – экстремум свечи, на которой имело место пересечение +DI и –DI. Этот экстремум должен быть достигнут не позже, чем на opt2 свече после пересечения +DI и –DI.

Enter Long
Cross(C, ValueWhen(1, Cross(PDI(opt1),MDI(opt1)) AND Ref(ADX(opt1),-1) < ADX(opt1), HIGH) ) AND
BarsSince(Cross(PDI(opt1),MDI(opt1)) AND Ref(ADX(opt1),-1) < ADX(opt1)) < opt2
Enter Short
Cross(ValueWhen(1, Cross(MDI(opt1),PDI(opt1)) AND Ref(ADX(opt1),-1) < ADX(opt1), LOW),C) AND
BarsSince(Cross(MDI(opt1),PDI(opt1)) AND Ref(ADX(opt1),-1) < ADX(opt1)) < opt2

ADX&MA

Открытие позиции в начале нового движения (при пересечении +DI и –DI), либо на трендовом рынке (ADX выше порога opt4) при пересечении цены и скользящей средней

Enter Long
Cross(C,ValueWhen(1,Cross(PDI(opt1),MDI(opt1)),HIGH)) AND
BarsSince(Cross(PDI(opt1),MDI(opt1))) < opt2
OR C > Mov(C, opt3, S) AND ADX(opt1) > opt4
Enter Short
Cross(ValueWhen(1,Cross(MDI(opt1),PDI(opt1)), LOW),C) AND
BarsSince(Cross(MDI(opt1),PDI(opt1))) < opt2
OR C < Mov(C, opt3, S) AND ADX(opt1) > opt4

ADXtop&Pullback

Открытие позиций на откате от границы канала после появления максимума ADX.

Enter Long
BarsSince(Ref(ADX(opt1),-2) <= Ref(ADX(opt1),-1) AND
Ref(ADX(opt1),-1) > ADX(opt1) AND ADX(opt1) > opt2 
AND PDI(opt1) > MDI(opt1) ) < opt3 AND 
C < LLV(Ref(LOW, -1), opt4)
Enter Short
BarsSince(Ref(ADX(opt1),-2) <= Ref(ADX(opt1),-1) AND
Ref(ADX(opt1),-1) > ADX(opt1) AND ADX(opt1) > opt2
AND PDI(opt1) < MDI(opt1) ) < opt3 
AND C > HHV(Ref(HIGH, -1), opt4)

ADX-Burst-2МА System

ADX burst trend-seeking system.

ADX-импульсная трендовая система.

(Вспомогательный индикатор, полезный при компьютерном исследовании системы: ADXburst - величина 1-периодного изменения индикатора ADX, т.е. Momentum1(ADX)

Periods:= Input("Enter ADX periods", 8, 144, 14);
Abs(ADX(Periods)- Ref(ADX(Periods),-1))

Индикатор ADXburst определяет момент открытия позиции (ADXburst>1 указывает на скачок графика), а направление позиции диктуется расположением двух МА).

Enter Long
Mov(C, opt1, S) > Mov(C, opt2, S) AND Abs(ADX(opt3)- Ref(ADX(opt3),-1)) > 1
Enter Short
Mov(C, opt1, S) < Mov(C, opt2, S) AND Abs(ADX(opt3)- Ref(ADX(opt3),-1)) > 1

TAT System

Trend-antitrend system.

При растущем ADX (ADX>MA(ADX)) open на выходе из канала (buy new high, sell new low), при падающем ADX open внутрь канала ((buy new low, sell new high)

Enter Long
H > HHV(Ref(HIGH,-1),opt1) AND ADX(opt2) > Mov(ADX(opt2), opt3, S) OR 
L < LLV(Ref(LOW, -1), opt1) AND ADX(opt2) < Mov(ADX(opt2), opt3, S)
Enter Short
H > HHV(Ref(HIGH,-1),opt1) AND ADX(opt2) < Mov(ADX(opt2), opt3, S) OR 
L < LLV(Ref(LOW, -1), opt1) AND ADX(opt2) > Mov(ADX(opt2), opt3, S)

RAVI&MaSystem

Enter Long
Abs(Mov( C, opt1, S) - Mov(C, opt2, S))/Mov( C, opt2, S) > opt3
AND C > Mov( C, opt4, S)
Enter Short
Abs(Mov( C, opt1, S) - Mov(C, opt2, S))/Mov( C, opt2, S) > opt3
AND C < Mov( C, opt4, S)

Системы на основе осцилляторов

RSI_os/ob

Sell при пересечении осциллятором RSI уровня перекупленности сверху вниз, а Buy при пересечении осциллятором RSI уровня перепроданности снизу вверх

Enter Long 
Cross(RSI(opt1), opt2)
Enter Short
Cross(opt3, RSI(opt1))

RSIos/ob_&2MAantitrend

Антитрендовая система, направление тренда определяется расположением двух МА, позиции открываются против тренда, если RSI выходит из области перекупленности/перепроданности.

Enter Long
Cross(RSI(opt1), opt2) AND Mov(C, opt4, S) < Mov(Mov(C, opt4, S), opt5, S)
Exit Long 
Cross(opt3, RSI(opt1)) OR Cross(Mov(Mov(C, opt4, S), opt5, S), Mov(C, opt4, S))
Enter Short
Cross(opt3, RSI(opt1)) AND Mov(C, opt4, S) > Mov(Mov(C, opt4, S), opt5, S)
Exit Short
Cross(RSI(opt1), opt2) OR Cross( Mov(C, opt4, S), Mov(Mov(C, opt4, S), opt5, S))

2MARSIcross&Boll_AT

Антитрендовая Stop&Revers система с открытием позиций по пересечению двух скользящих средних от RSI; BolligerBand используется для определения состояний перекупленности/перепроданности рынка.

Enter Long
Cross(Mov(RSI(opt1), opt2,S), Mov(Mov(RSI(opt1), opt2,S) , opt3,S)) 
AND C < BBandBot(C, opt4, S, opt5)
Enter Short
Cross(Mov(Mov(RSI(opt1), opt2,S) , opt3,S) , Mov(RSI(opt1), opt2,S)) 
AND C > BBandTop(C, opt4, S, opt5)

Stochastic_os/ob

Sell при пересечении осциллятором Stochastic уровня перекупленности сверху вниз, Buy при пересечении осциллятором Stochastic уровня перепроданности снизу вверх.

Enter Long
Cross(Stoch(opt1,opt2), opt3)
Enter Short
Cross(opt4,Stoch(opt1,opt2))

Stochastic_os/ob&DMItrend

Открытие позиций при пересечении осциллятором Stochastic уровней перекупленности/перепроданности, а также при пресечении быстрой и медленной линий Stochastic в направлении, указываемом DMS

Enter Long
Cross(Stoch(opt1,opt2),opt3) OR
Cross(Stoch(opt1,opt2),Mov(Stoch(opt1,opt2), opt5,S)) AND
PDI(opt6) > MDI(opt6) AND ADX(opt6)> Ref(ADX(opt6), -1)
Enter Short
Cross(opt4,Stoch(opt1,opt2))OR 
Cross(Mov(Stoch(opt1,opt2), opt5,S), Stoch(opt1,opt2)) AND
PDI(opt6) < MDI(opt6) AND ADX(opt6)> Ref(ADX(opt6), -1)

Stoch_RightCross

Открытие позиций при пересечении быстрой и медленной линий осциллятора Stochastic

Enter Long
Cross(Stoch(opt1,opt2),Mov(Stoch(opt1,opt2), opt3,S)) AND
Ref(Mov(Stoch(opt1,opt2),opt3,S),-1) < Mov(Stoch(opt1,opt2), opt3,S)
Enter Short
Cross(Mov(Stoch(opt1,opt2), opt3,S), Stoch(opt1,opt2)) AND
Ref(Mov(Stoch(opt1,opt2),opt3,S),-1) > Mov(Stoch(opt1,opt2), opt3,S)

double_MACD

Enter Long
Cross(Mov(C,opt1,S) - Mov(C,opt2, S), Mov(Mov(C,opt1,S) - Mov(C,opt2, S),opt3,S)) AND Mov(C,opt4,S) - Mov(C,opt5, S) > Mov(Mov(C,opt4,S) - Mov(C,opt5, S), opt6, S)
Enter Short
Cross(Mov(Mov(C,opt1,S) - Mov(C,opt2, S),opt3,S), Mov(C,opt1,S) - Mov(C,opt2, S)) AND Mov(C,opt4,S) - Mov(C,opt5, S) < Mov(Mov(C,opt4,S) - Mov(C,opt5, S), opt6, S)