PASSAT
Старейшина
- Регистрация
- 09.02.14
- Сообщения
- 577
- Реакции
- 674
PASSAT не предоставил никакой дополнительной информации.
Торговля на 60с по ТОСу(стандартный индикатор). Я искал в ТОСе индикатор, который может подойти для торговли на БО, наверное нашол). Ето стандартный индикатор DynamicMomentumIndex. скрин:
но я его немножко изменил, поменял линии перепроданости и перекуплености поставил значения 85 и 15. Линия ето RSI, только в етом индикаторе больше настроек есть, но я ничего не трогал только на RSI поставил максимальное значение 30, и вот что с етого получилось:
когда линия входит в зону перекуплености или перепроданости, вход на следующую свечу. Етот индюк можна использовать на всех тайм фреймах, просто чем выше тайм фрейм тем меньше сигналов. Может кто то ище к нему чего нибуть придумает) и строго меня не судите) Всем удачной торговли
Со звуком и стрелками
Результаты тестов выкладывать ветке Результаты: Торговля на 60с по ТОСу
но я его немножко изменил, поменял линии перепроданости и перекуплености поставил значения 85 и 15. Линия ето RSI, только в етом индикаторе больше настроек есть, но я ничего не трогал только на RSI поставил максимальное значение 30, и вот что с етого получилось:
когда линия входит в зону перекуплености или перепроданости, вход на следующую свечу. Етот индюк можна использовать на всех тайм фреймах, просто чем выше тайм фрейм тем меньше сигналов. Может кто то ище к нему чего нибуть придумает) и строго меня не судите) Всем удачной торговли
Код:
declare lower;
input price = close;
input stdevLength = 5;
input avgOfStdevLength = 10;
input DYMILength = 30;
input DYMILengthLowerLimit = 3;
input DYMILengthUpperLimit = 30;
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];
plot DYMI = RSI;
plot OverBought = 85;
plot OverSold = 15;
DYMI.SetDefaultColor(GetColor(8));
OverBought.SetDefaultColor(GetColor(5));
OverSold.SetDefaultColor(GetColor(5));
Код:
declare lower;
input price = close;
input stdevLength = 5;
input avgOfStdevLength = 10;
input DYMILength = 30;
input DYMILengthLowerLimit = 3;
input DYMILengthUpperLimit = 30;
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];
plot DYMI = RSI;
plot OverBought = 90;
plot OverSold = 10;
DYMI.DefineColor("OverBought", GetColor(5));
DYMI.DefineColor("Normal", GetColor(7));
DYMI.DefineColor("OverSold", GetColor(1));
DYMI.AssignValueColor(if RSI > overbought then DYMI.Color("OverBought") else if RSI < oversold then DYMI.Color("OverSold") else DYMI.Color("Normal"));
OverBought.SetDefaultColor(GetColor(5));
OverSold.SetDefaultColor(GetColor(5));
Alert (DYMI>=OverBought, "OverBought", Alert.BAR, Sound.ring);
Alert (DYMI<=OverSold, "OverSold", Alert.BAR, Sound.ring);
plot DotDn = if DYMI>=OverBought then high*72 else double.nan;
DotDn.setStyle(curve.POINTS);
DotDn.setPaintingStrategy(paintingStrategy.arROW_DOWN);
DotDn.setLineWeight(3);
DotDn.setDefaultColor(color.wHITE);
plot DotUp = if DYMI<=OverSold then low*-2 else double.nan;
Dotup.setStyle(curve.POINTS);
Dotup.setPaintingStrategy(paintingStrategy.arROW_UP);
Dotup.setLineWeight(3);
Dotup.setDefaultColor(color.wHITE);
alert(Dotup, "Scalper Buy Signal", Alert.BAR, Sound.ring);
alert(DotDn, "Scalper Buy Signal", Alert.BAR, Sound.ring);
Результаты тестов выкладывать ветке Результаты: Торговля на 60с по ТОСу
Последнее редактирование: