Блог им. RusTrend

Формулы для метастока

Всем привет. Продолжу легкий ликбез в области тестирования и создания систем торговли.
Сегодня решил выложить ряд формул для метастока, индикаторов под литерой А в квике.
Сразу определимся, для чего я это делаю. Среди великого множества дико богатых и удачливых трейдеров  на этом ресурсе, ещё  оказывается появляются личности незнакомые с основами тех анализа, личности, тестирующие системы из расчета цен закрытия, но делающие сделки по открытию расчетной свечи и т.д. В общем и целом попытаюсь уменьшить индекс тупизма и незнания на Smart-labе.
Еще, мнение своё можете сразу засунуть куда подальше и  писать только по делу. Пост тупо информационный.
  1. AC («Ускорение/Замедление») –
Mov(H,5,S)-Mov(H,34,S) — Mov(Mov(H,5,S)-Mov(H,34,S),5,S)
(5 и 34 стандарные параметры)
     2.  ADX («Индекс направления движения усредненной цены»)
PlusDM:= If(HIGH>Ref(HIGH,-1),Abs(HIGH-Ref(HIGH,-1)), 0);
MinusDM:= If(LOW<Ref(LOW,-1), Abs(Ref(LOW,-1)-LOW), 0);
tr:=Max(Max(Abs(HIGH-LOW), Abs(HIGH-Ref(CLOSE,-1))),Abs(LOW-Ref(CLOSE,-1)));
SDIPlus:= If(tr<>0,(100 * PlusDM/TR),0);
SDIMinus:= If(tr<>0,(100 * MinusDM/TR),0);

DIPlus:= Mov(SDIPlus,12,E);
DIMinus:= Mov(SDIMinus,12,E);
DXX:=Abs(DIPlus-DIMinus)/(DIPlus+DIMinus);
{Rule}
100*Mov(DXX,12,E)
(период 12 )
  1. A/D («Накопление/распределение»)
ADn:=(2*CLOSE-HIGH-LOW)/(HIGH-LOW)*VOLUME;
ADn+Ref(ADn,-1)
  1. AMA (Adaptive Moving Average)
Periods := Input(«Time Periods»,1,1000, 10);
Direction := CLOSE — Ref(CLOSE,-periods);
Volatility := Sum(Abs(ROC(CLOSE,1,$)),periods);
ER := Abs(Direction/Volatility);
FastSC := 2/(2 + 1);
SlowSC := 2/(30 + 1);
SSC := ER * (FastSC — SlowSC) + SlowSC;
Constant := Pwr(SSC,2);
AMA := If(Cum(1) = periods +1, Ref(CLOSE,-1)+ constant * (CLOSE- Ref(CLOSE,-1)),PREV + constant * (CLOSE — PREV));
AMA
(период вводим сами)
  1. AO («Чудесный осциллятор»)
Mov((HIGH+LOW)/2,5,S)-Mov((HIGH+LOW)/2,34,S)
(соответственно 5 и 34 периоды )
  1. ATR (Average True Range)
{Get the required ATR period;}
period:=Input(«ATR Period :»,1,100,5);
{Calculate the biggest difference based on the true range concept;}
diff1:=Max(H-L,Abs(H-Ref(C,-1)));
diff2:=Max(diff1,Abs(L-Ref(C,-1)));
{Use Wilders’ moving average method to calculate the Average True Range;}
Mov(diff2,period*2-1,E)
 
Далее, при тестировании систем не обязательно пользоваться только ценами открыт, закрыт, хаи и лаи при указании когда совершать сделки. Откройте глаза и ставьте значения индикаторов. Тогда проскальзывание будет мин.
  1.   ATR Trailing Stop
   {Get the required ATR period;}
   period:=Input(«ATR Period :»,1,100,5);
   {Calculate the biggest difference based on the true range concept;}
   diff1:=Max(H-L,Abs(H-Ref(C,-1)));
   diff2:=Max(diff1,Abs(L-Ref(C,-1)));
   {Use Wilders’ moving average method to calculate the Average True Range;}
   Mov(diff2,period*2-1,E)
 
Удачи…… и прилагайте усилия для получения прибыли 

P.S. перепишите минусы и ковычки, писал в ворде отсюда и микрокосяк 
★5
18 комментариев
Послушай, не подскажещь индикатор, или группу индикаторов, для МТ-4 или Квика для ВЫХОДА из позиции? Входить и ставить стопы вроде научился, а вот с выходом беда, после входа начинает казаться, что любой отскок или приостановка движения -это начало разворота, беру небольшую прибыль, и затам наблюдаю минут через 5, как цена с ускорением летит в ту сторону, какую ты предсказал. Может посоветуешь какие индюки? Метастоком я не пользуюсь, Теханализ делаю в МТ-4 и Квике…
avatar
makc767, как вариант… условие выхода а<в, попробуй а<в-в*К т.е. можно несколько загрубить выход, но лучше напиши в личку принцип выхода (меня не интересуют периоды и индикаторы) чем смогу помогу
avatar
Привет. Хорошую тему начал. Давно занимаюсь созданием ТС в Метастоке. Постоянно возникает вопрос, как научить Метасток, а именно тестер систем, открывать и закрывать позы по цене пересечения ценой какого-либо индикатора. Ну например Cross(C,Ref(HHV(H,10)). Главное, чтобы тестер считал не закрытие свечи, на которой произошло пересечение, а именно цену пересечения. У меня 11 версия, там есть возможность вписать формулы приказов на вход и выход по лимит. или рыночным заявкам, но какие именно формулы и под какой конкретно приказ не могу понять. Если можете, поясните этот вопрос, желательно с конкретным примером, буду очень благодарен. Можно в личку
avatar
Андрей Добер, ок. чуть позже
avatar
Руслан, Спасибо, буду ждать
avatar
Руслан, вчерашний пост убил?
avatar
vito333, да, психанул с горяча… как нибудь востановлю
avatar
Андрей Добер, в вашем примере это значение индикатора который ПЕРЕСЕКАЮТ, другой пример
H>Mov(H,5,E) AND Mov(h,5,E)>Mov(h,20,E)
в графе order type — stop-- пишем
Max( Max(Mov(h,5,E),Mov(h,20,E)),open)
т.е. мы выбираем максимальное между средней с периодом 5, 20 и ценой открытия, т.к. open может оказаться максимумом. Непосредственно high не используем т.к. нас интересует только цена в момент пересечения. как то так…
avatar
Руслан, L<Mov(L,5,E) AND Mov(L,5,E)<Mov(L,20,E)
MIN(MIN(Mov(L,5,E),Mov(L,20,E)),open)
avatar
Руслан, спасибо, а в окне тестера Trade Execution галочку на Realistic Market Prices ставить или нет?
avatar
Андрей Добер, я не ставлю, а BUY PRICE и других ставлю OPEN
просто сходство реала и метастока почти 100% и сделки пойдут только по ценам от формул. так то так
avatar
Руслан, т.е. получается: если в дополнительных строках на типы приказов формула не указана, то считается по открытию сл. бара, а если формула стоит и выбран тип приказа (например стоп), то данное условие системы будет считаться по значению формулы. Верно я понял?
avatar
Андрей Добер,… то считается по открытию сл. бара…
не обязательно след… delay order openind ставь 0 и будет текущий, по откр, закр, хаю или лаю, что выберешь, иначе сработает формула…
но не надо забывать что система может быть заточена строго под условие к примеру OPEN и формулу можно не писать, всё равно будет опен
avatar
Попробуйте следующую формулу для Метастока.
При построении 3 линий, т.е.:
Первая как написана при Pr:=C;
Вторая при Pr:=H;
третья при Pr:=L;
Получаем канал.
Использую эту линию для написания MACD да для других индикаторах.
Посмотрите как они прекрасны на дневных графиках.
Интересно работать в канале.
P1:=6; Pr:=C; MA:=Mov(Pr,P1,TRI); Shift:=Round(p1/2); center:=LastValue(Shift); CMA:=Ref(MA,center); y:=LastValue(CMA+PREV-PREV); CMA:=If(y>0,y,Pr); CMA1:=Ref(Mov(Pr,P1-1,TRI),center-1); y:=LastValue(CMA1+PREV-PREV); CMA1:=If(y>0,y,Pr); CMA2:=Ref(Mov(Pr,P1-2,TRI),center-2); y:=LastValue(CMA2+PREV-PREV); CMA2:=If(y>0,y,Pr); CMA3:=Ref(Mov(Pr,P1-3,TRI),center-3); y:=LastValue(CMA3+PREV-PREV); CMA3:=If(y>0,y,Pr); CMA4:=Ref(Mov(Pr,P1-4,TRI),center-4); y:=LastValue(CMA4+PREV-PREV); CMA4:=If(y>0,y,Pr); CMA5:=Ref(Mov(Pr,P1-5,TRI),center-5); y:=LastValue(CMA5+PREV-PREV); CMA5:=If(y>0,y,Pr); CMAP:= If(Cum(1)=LastValue(Cum(1)-center+1),CMA1, If(Cum(1)=LastValue(Cum(1)-center+2),CMA2, If(Cum(1)=LastValue(Cum(1)-center+3),CMA3, If(Cum(1)=LastValue(Cum(1)-center+4),CMA4, If(Cum(1)=LastValue(Cum(1)-center+5),CMA5,CMA))))); CMAP;
avatar
Den5958, занятно. А какие способы применения для этой формулы используешь?
avatar
Den5958, не знаю что сказать, прикольный канал, но ты пришел на него под какой то смысл. если получается хорошо
avatar

теги блога Ruslan_Loginov

....все тэги



UPDONW
Новый дизайн