Тестируем в метастоке 2
Всем привет.
Этой статьей я хочу продолжить разбор тонкостей метастока на примерах написания элементов тестирования систем.
Возможно для Великих Гуру это будет неинтересно, но периодически читая посты думаю будут трейдеры для которых данный пост лишним не станет.
Поехали.
Многие используют в том или ином виде стандартное отклонение. Как правило это каналы с помощью которых определяются точки входа, выхода, стопы. При этом цена по которой происходит сделка не очевидна и зачастую возникают вопросы по определению таковой.
Так же попытаемся решить вопрос написания индикатора с выставлением периода.
К Вашему вниманию:
1.
цена расчета по стандартному отклонению
period:=Input(«stdev Period :»,1,100,12);
m:=Sum(Ref(H,-1),period-1);
n:=Sum(Ref(H*H,-1),period-1);
st:= (Sqrt(Abs(Open*Open*(period-1)-2*Open*m+period*n-m*m)))/period;
a:=(period-1);
b:=(-2*m);
cс:=period*n-m*m-period*period*st*st;
x:=(-b+sqrt(b*b-4*a*cс))/(2*a);
x;
В данном примере приведен расчет стандартного отклонения ST и далее формула расчета цены при которой произойдет изменение стандартного отклонения по сравнению со значения STDEV по открытию свечи. Цена расчета взята не CLOSE, а HIGH (H).
period:=Input(«stdev Period :»,1,100,12); цифра 12 — период по умолчанию, для оптимизации можно вместо Input(«stdev Period :»,1,100,12) постовать OPT1 и провести оптимизацию.
Если вбить или вставить скопированное как индикатор — получите именно цену при которой произойдет изменение STDEV. Для получения значения отклонения, вместо X; ставим ST;
2. Расчет значения средней скользящей экспоненциальной
period1:=Input(«МА Period1 :»,1,100,12);
ma:=(ref(mov(L,period1,e),-1)*(period1-1)+2*L)/(period1+1);
ma;
Здесь всё просто и понятно. Средняя скользящая, расчет по LOW, период по умолчанию =12.
3. Расчет верхней границы канала при расчете цены -HIGH, периоды по умолчанию = 12, коэф-т K — коэф-т на который можно умножать STDEV.
period:=Input(«stdev Period :»,1,100,12);
m:=Sum(Ref(H,-1),period-1);
n:=Sum(Ref(H*H,-1),period-1);
st:=(Sqrt(Abs(H*H*(period-1)-2*H*m+period*n-m*m)))/period;
period1:=Input(«MA Period :»,1,100,12);
ma:=(ref(mov(h,period1,e),-1)*(period1-1)+2*high)/(period1+1);
k:=Input(«коэф-т к ST:»,1,100,12);
kanal:=ma+k*st;
kanal;
В итоге получаем канал (нижнее значение по аналогии только берем вместо HIGH соответственно LOW или CLOSE(кому как нравится )), который можем оптимизировать. Т.е.
Input(«stdev Period :»,1,100,12)=opt1,
Input(«MA Period :»,1,100,12) = opt2,
Input(«коэф-т к ST:»,1,100,12) = opt3.
На этом всё. Всем профитов.
(Буду обязан если найдете ошибки и укажите как исправить)