Стрелки от Глебан

Hashi

Смертный
Администратор
Регистрация
26.01.14
Сообщения
3,053
Реакции
2,728
1.PNG


Код:
# TS_ValueChartDivergence

# http://www.thinkscripter.com

# [email protected]

# Last Update 24 Oct 2010

#hint: Displays Value Chart/Price action divergences as arrows.

#hint length: The number of periods used with the associated Value Chart

#hint filterOutSignalsBelow: Threshold required on the Value Chart peaks for divergence signal to be diplayed. The higher the number the more signals that will be filtered out.

input stdevLength = 5;

input avgOfStdevLength = 10;

input DYMILength = 14;

input DYMILengthLowerLimit = 3;

input DYMILengthUpperLimit = 30;

input length = 8;

input price=close;

input filterOutSignalsBelow = 7;

assert(DYMILengthLowerLimit > 0, "'dymi length lower limit' must be positive: " + DYMILengthLowerLimit);

assert(DYMILength between DYMILengthLowerLimit and DYMILengthUpperLimit, "'dymi length' must be between lower and upper limit: " + DYMILength);

def std = stdev(price, stdevLength);

def ratio = std / Average(std, avgOfStdevLength);

def dynamicLength = Floor(DYMILength / ratio);

def limitedLength = if dynamicLength between DYMILengthLowerLimit and DYMILengthUpperLimit then dynamicLength else 0;

def sf = 2 / (limitedLength + 1);

def bn = Max(barNumber(), 0);

# 10^-5 precision for ema multiplier

def expIndex = if limitedLength == 0 then 1 else max(1, bn - ceil(-5 / lg(1 - sf)));

def fromIndex = if isNan(expIndex) then 1 else expIndex;

def chg = price - price[1];

def absChg = AbsValue(chg);

def netChgAvg = fold indexN = fromIndex to bn + 1 with accuN do sf * (if isnan(getValue(chg, bn - indexN)) then 0 else getValue(chg, bn - indexN)) + (1 - sf) * accuN;

def totChgAvg = fold indexT = fromIndex to bn + 1 with accuT do sf * (if isnan(getValue(absChg, bn - indexT)) then 0 else getValue(absChg, bn - indexT)) + (1 - sf) * accuT;

def RSI = if totChgAvg != 0 and limitedLength != 0 then 50 * (netChgAvg / totChgAvg + 1) else RSI[1];

def DYMI = RSI;

def OverBought = 90;

def OverSold = 10;

def VarP = round(length / 5);

def VarA = Highest(high, VarP) - Lowest(low, VarP);

def VarR1 = if VarA == 0 and VarP == 1 then AbsValue(close - close[VarP]) else VarA;

def VarB = Highest(high, VarP)[VarP + 1] - Lowest(low, VarP)[VarP];

def VarR2 = If VarB == 0 and VarP == 1 then AbsValue(close[VarP] - close[VarP * 2]) else VarB;

def VarC = Highest(high, VarP)[VarP * 2] - Lowest(low, VarP)[VarP * 2];

def VarR3 = If VarC == 0 and VarP == 1 then AbsValue(close[VarP * 2] - close[VarP * 3]) else VarC;

def VarD = Highest(high, VarP)[VarP * 3] - Lowest(low, VarP)[VarP * 3];

def VarR4 =

If VarD == 0 and VarP == 1 then AbsValue(close[VarP * 3] - close[VarP * 4]) else VarD;

def VarE = Highest(high, VarP)[VarP * 4] - Lowest(low, VarP)[VarP * 4];

def VarR5 = If VarE == 0 and VarP == 1 then AbsValue(close[VarP * 4] - close[VarP * 5]) else VarE;

def LRange = ((VarR1 + VarR2 + VarR3 + VarR4 + VarR5) / 5) * 0.4;

def Var0 = if AbsValue(close - close[1]) > (high - low) then AbsValue(close - close[1]) else (high - low);

def LRange2 = if high == low then Average(AbsValue(close - close[1]), 1) * 0.4 else Average(Var0, 1) * 0.4;

def range = high + low;

def delta = high - low;

def median = range / 2;

def floatingAxis = Average(median, length);

def dynamicVolatilityUnit = if length <= 7 then LRange2 else LRange;

def relativeHigh = (high - floatingAxis) / dynamicVolatilityUnit;

def relativeLow = (low - floatingAxis) / dynamicVolatilityUnit;

def relativeOpen = (open - floatingAxis) / dynamicVolatilityUnit;

def relativeClose = (close - floatingAxis) / dynamicVolatilityUnit;

def h = relativeHigh;

def l = relativeLow;

def sellDivergence = if high > high[1] and relativeHigh < relativeHigh[1] and relativeHigh[1] > filterOutSignalsBelow then 1 else 0;

def buyDivergence = if low < low[1] and relativeLow > relativeLow[1] and relativeLow[1] < -filterOutSignalsBelow then 1 else 0;

def hiddenDivergenceUp = if low > low[1] and relativeLow < relativeLow[1] then 1 else 0;

def hiddenDivergenceDown = if high < high[1] and relativeHigh > relativeHigh[1] then 1 else 0;

plot upArrow =DYMI<=OverSold AND

if buyDivergence then low else double.nan;

upArrow.SetPaintingStrategy(paintingStrategy.BOOLEAN_ARROW_UP);

upArrow.SetDefaultColor(color.green);

upArrow.SetLineWeight(3);

plot downArrow =DYMI >=OverBought AND if sellDivergence then high else double.nan;

downArrow.SetPaintingStrategy(paintingStrategy.BOOLEAN_ARROW_DOWN);

downArrow.SetDefaultColor(color.red);

downArrow.SetLineWeight(3);

alert(downArrow, "Scalper Buy Signal", Alert.BAR, Sound.ring);

alert(upArrow, "Scalper Buy Signal", Alert.BAR, Sound.ring);
Настройки для валютных пар.
меняем последние два значения
1.PNG
Код:
AUD/USD 5-9
NZD/USD 8-9
EUR/JPY 8-9
GBP/JPY 8-7
GBP/USD 8-7
EUR/GBP 8-8
EUR/USD 5-6
USD/JPY 6-11
USD/CHF 6-7
USD/CAD 5-6
GBP/CAD 7-9
GBP/AUD 7-9
Индикатор с тестером http://binary-forum.com/threads/Стрелки-от-Глебан.331/#post-44172
 
Последнее редактирование:

Martynas

Непризнанный
Регистрация
24.06.14
Сообщения
86
Реакции
9
Martynas не предоставил никакой дополнительной информации.
Aha podelis, u mene max 65-70% paluchejetsa.
 

Martynas

Непризнанный
Регистрация
24.06.14
Сообщения
86
Реакции
9
Martynas не предоставил никакой дополнительной информации.
Ime kokih strelochnih idikatorov nalozil, neochen ponel?
 

kuzinvitaliy

Местный
Регистрация
08.03.15
Сообщения
334
Реакции
179
kuzinvitaliy не предоставил никакой дополнительной информации.
EUR/USD 30,30,30,10,60,80,20,6,HL2,7,1,no,no,200,200,100,500,yes,1

NZD/USD
2,2,15,10,30,80,20,7,HLC3,10,1,no,no,200,200,100,500,Yes,1


EUR/GBP
5,8,25,5,50,80,20,7,Close,10,1,no,no,25,0/8,no,200,200,100,500,Yes,1


AUD/USD
10,25,35,5,60,75,25,5,Close,7,1,no,no,25,0.8,no,100,300,300,600,Yes,1


GBP/USD
8,10,25,5,50,75,25,7,Close,25,0/8,no,200,200,100,500,Yes,1
 

1Smirnoff1

Новичок
Регистрация
02.05.14
Сообщения
95
Реакции
12
1Smirnoff1 не предоставил никакой дополнительной информации.
EUR/USD 30,30,30,10,60,80,20,6,HL2,7,1,no,no,200,200,100,500,yes,1

NZD/USD
2,2,15,10,30,80,20,7,HLC3,10,1,no,no,200,200,100,500,Yes,1


EUR/GBP
5,8,25,5,50,80,20,7,Close,10,1,no,no,25,0/8,no,200,200,100,500,Yes,1


AUD/USD
10,25,35,5,60,75,25,5,Close,7,1,no,no,25,0.8,no,100,300,300,600,Yes,1


GBP/USD
8,10,25,5,50,75,25,7,Close,25,0/8,no,200,200,100,500,Yes,1

а со временем настройки надо подкрчивать постоянно?
 

kuzinvitaliy

Местный
Регистрация
08.03.15
Сообщения
334
Реакции
179
kuzinvitaliy не предоставил никакой дополнительной информации.
а со временем настройки надо подкрчивать постоянно?
Думаю что скорее всего нужно будет. Всё зависит от поведения цены, на каждой валютной паре разные параметры. Там достаточно просто разобраться во взаимоотношениях этих параметрах. Меняешь буквально одну цифру и процент увеличивается на 15
 

Martynas

Непризнанный
Регистрация
24.06.14
Сообщения
86
Реакции
9
Martynas не предоставил никакой дополнительной информации.
A signalov u tebe smotriu na screne bolshe chem u mene. Kak ti eto zdelal? U mene davol;no retkije oni
 

Martynas

Непризнанный
Регистрация
24.06.14
Сообщения
86
Реакции
9
Martynas не предоставил никакой дополнительной информации.
Kstati jesli zahadit second candle yes rezultati na dlinoi distanciji nemnogo lutshe smotretsa
 

kuzinvitaliy

Местный
Регистрация
08.03.15
Сообщения
334
Реакции
179
kuzinvitaliy не предоставил никакой дополнительной информации.
Как я понял нетнет идеального индикатора, который бы работал стабильно выдавая прибыльные сигналы. По любому нужно голову включать и отфильтровывать ложные сигналы.
 
Верх Низ