sail
sail личный блог
07 апреля 2015, 10:10

Формирование трендов

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

 Рендж «А».
 
Формируется минимальным движением цены. Минимально значимым для нас. Это по сути изменения цены за  тот тайм фрейм, на котором мы работаем.   Проще говоря, — дневная, часовая, минутная… волотильность.   По большому счету все начинается с тиков. Это те кирпичики которые в дальнейшем выстраиваются в какое то направленное движение. Можно начинать отслеживать движение с  тиков, но тогда до трендов мы дойдем, пройдя большее количество ступеней.
В общем, это уже из практики: основной кирпичик, — это волотильность  того тайм фрейма, на который установлен индикатор. 
Я работаю на днях, по этому мой кирпичик, ренж «А», — это изменение цены за день. 
Расчет не сложный и общедоступный.  И тут ни какого секрета нет, — волотильность, пока все просто.
 Формирование трендов
 Собственно и скрипт диапазона «А» несекретный могу  опубликовать.
 для WealthLab6:

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
using WealthLab;
using WealthLab.Indicators;
using finantic.TL;


namespace WealthLabCompile2
{
class Strategy: WealthScriptTL
{


public int RNGaFSeries (){
int fnResult = 0;
double RNGaHi, RNGaLo, RNGaRng = 0.0;
int bar = 0;
string sName = null;
sName = (string)«RNGaF('')»;
fnResult = FindNamedSeries(sName);
if ((fnResult >= 0)) return fnResult;
fnResult = CreateNamedSeries(sName);
for (bar = 5; bar <= (Bars.Count — 1); bar++) {
if ((PriceClose((bar — 1)) > PriceHigh(bar))) RNGaHi = (double)PriceClose((bar — 1));
else RNGaHi = (double)PriceHigh(bar);
if ((PriceClose((bar — 1)) < PriceLow(bar))) RNGaLo = (double)PriceClose((bar — 1));
else RNGaLo = (double)PriceLow(bar);
RNGaRng = (double)(((RNGaRng + ((RNGaHi — RNGaLo)))) / 2);
GetSeries(fnResult)[bar] = RNGaRng;

}
return fnResult;

}

public double RNGaF (int bar){
double fnResult = 0.0;
fnResult = GetSeriesValue(bar, RNGaFSeries());
return fnResult;

}


public int bar,RNGaFS;
public int RNGaPane;

 

protected override void Execute(){
Init();

RNGaFS = (int)CreateSeries();
RNGaPane = (int)CreatePane(50, true, true);

for (bar = 0; bar <= 5; bar++) {
GetSeries(RNGaFS)[bar] = 0;

}
for (bar = 5; bar <= (Bars.Count — 1); bar++) {
GetSeries(RNGaFS)[bar] = RNGaF(bar)/PriceClose(bar)*100;

PlotSeries(RNGaFS, RNGaPane, WL_BLUE, WL_THIN);

}

HideVolume();
}
}
}

Расчитав рендж«А»,  мы подготовились строить из этих кирпичиков рендж следущего уровня.
завтра продолжим... 

3 Комментария
  • никто, никогда и никак не может узнать где начинается и заканчивается тренд.
  • Вархан Джугурбаев
    17 сентября 2016, 20:15
    Кроме WealthLab для аналитики другие платформы, если кому пригодится - http://getanyplatform.com

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн