Transaq

СБО "Transaq" => Подсистема ATF => Topic started by: Makin on РЯаХЫп 09, 2014, 02:18:12 pm

Title: Какие изменить данные
Post by: Makin on РЯаХЫп 09, 2014, 02:18:12 pm
Добрый день! Подскажите, пожалуйста, какие изменить данные в коде "Сигнал пересечения ценой МА", чтобы вместо скользящей средней был Parabolic SAR (0,01/0,01/0,1).
Взято с данного сайта:
 
#samewindow
#line 0 solid red
 
extern period = 9;
var trend = 0;
 
function init()
{
   setInitCandles(1);
}
 
 
function calc()
{
   line[0] = MovAvg(ind_ema, period, pt_close);
 
   if (trend == 1 and close < line[0]) {
      signal::alert("Продажа: " + getSecName() +
               " пересекла сверху вниз скользящую среднюю.");
   }
 
   if (trend == -1 and close > line[0]) {
      signal::alert("Покупка: " + getSecName() +
               " пересекла снизу вверх скользящую среднюю.");
   }
 
   if (close > line[0]) {trend = 1;}
   else if (close < line[0]) {trend = -1;}
}
Title: Re: Какие изменить данные
Post by: ramil on РЯаХЫп 09, 2014, 04:36:49 pm
#samewindow
#line 0 solid red

extern pMax = 0.2;
extern pStep = 0.02;
extern pInit = 0.02;

function init()
{
   setInitCandles(1);
}
function calc()
{
   line[0] = IndRef("parabolicsar", pMax, pStep, pInit)[0];
 
   if (close < line[0]) {
signal::alert("Продать: по " + getSecName()+"по " + close +
      " цена пересекла границу сверху вниз.");
signal::output("-Вр." + getFormattedTime(getServerTime()) + "Прод" + getSecName() + "по=" + close );                  
   }
   if (close > line[0]) {
signal::alert("Купить: по " + getSecName()+" по " + close +
      " цена пересекла границу снизу вверх.");
signal::output("-Вр." + getFormattedTime(getServerTime()) + "Пок" + getSecName() + "по=" + close );
                  
   }
}
Title: Re: Какие изменить данные
Post by: Makin on РЯаХЫп 10, 2014, 09:22:11 am
Спасибо RAMIL! Но только при такой кодировке каждый раз по окончании свечи в терминал выкидывается сигнал о нахождении цены (выше/ниже) показателя Parabolc SAR, т.е. на 5-ти мин. таймфрейме дается 12 сигналов, а мне нужен сигнал только момента пересечении Параболика и цены.
Title: Re: Какие изменить данные
Post by: ramil on РЯаХЫп 10, 2014, 11:59:50 am
#samewindow
#line 0 solid red

extern pMax = 0.2;
extern pStep = 0.02;
extern pInit = 0.02;

static vPar = 0;
static Dir = 0;
static PrevDir = 0;

function init()
{
   setInitCandles(1);
}
function calc()
{     
       vPar = IndRef("parabolicsar", pMax, pStep, pInit)[0];
       PrevDir = Dir;
    if (high[0] > vPar) { Dir = 1; }
    if (low[0] < vPar) { Dir = -1; }
   
       line[0][0] = vPar;
     if (Dir < 0 && PrevDir >= 0) {
       signal::alert("Продать:   " + getSecName()+"по " + close +
      " цена пересекла границу сверху вниз.");
      signal::output("--Вр." + getFormattedTime(getServerTime()) +
      "Прод." + getSecName() + "по= " + close +"-ParabolicSar");                 
}
    if (Dir > 0 && PrevDir <= 0) {
      signal::alert("Купить:   " + getSecName()+" по " + close +
      " цена пересекла границу снизу вверх.");
      signal::output("-Вр." + getFormattedTime(getServerTime()) +
      "Пок." + getSecName() + "по= " + close+"-ParabolicSar" );
                 
   }
}
Title: Re: Какие изменить данные
Post by: Makin on РЯаХЫп 10, 2014, 03:35:00 pm
Ramil, спасибо большое, все работает!