Общие вопросы по разработке > Как прописать правило стратегии?

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

Как прописать правило стратегии?

Непрочитанное сообщение KakTak » 07 сен 2016, 00:00

Например. Берем индикатор EMA (15 периодов) и EMA (40 периодов). Хочу проверить написав: if Ema (40 периодов) > EMA (15 периодов) на какое нибудь количество условных единиц, то заходим лонг. Как такое правило описать???

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

Re: Как прописать правило стратегии?

Непрочитанное сообщение KakTak » 07 сен 2016, 00:22

Код: Выделить всё

/**Разница показаний ABCD если больше опр показателя то
Developed by Егорка;
Algorithm = хз;**/

function Initialize()
{
   StrategyName = "Импульсная основа ABCD";
   AddInput("Input1", Inputs.Candle, 5, true, "SRU6=ФОРТС");
   LongLimit = 1;
   ShortLimit = -1;
    AddGlobalVariable("R", Types.Double, 0);
}

function OnUpdate()
{
   /// ПРАВИЛО 1
   if ( (MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", 0) < 0) && (MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", -1)/**<<<<< Нужно чтобы предыдущая свеча индикатора была меньше следующей на 5000**/ <  MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", 0)) )
   {
      EnterLong();
   }

   /// ПРАВИЛО 2
   if ( (MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", 0) > 0) && (MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", -1) >   MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", 0)) ) /**А ЗДЕСЬ НАОБОРОТ/**
   {
      EnterShort();
   }

}

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

Re: Как прописать правило стратегии?

Непрочитанное сообщение KakTak » 07 сен 2016, 00:23

По вскому пытался, но голова не варит в етом направлении вообще

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

Re: Как прописать правило стратегии?

Непрочитанное сообщение KakTak » 07 сен 2016, 00:25

НУ поняли да?, не просто больше или меньше, а больше или меньше на 5000

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

Re: Как прописать правило стратегии?

Непрочитанное сообщение KakTak » 07 сен 2016, 00:42

Сломав мозг задачу частично удалось решить вводом переменных var i и var z

Код: Выделить всё

function OnUpdate()
{
var i = 5000;
var z = -5000;
{
   /// ПРАВИЛО 1
   if ( (MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", 0) < 0) && ((MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", -1) + MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", 0)) < z ))
   {
      EnterLong();
   }

   /// ПРАВИЛО 2
   if ( (MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", 0) > 0) && ((MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", -1) - MY.VolumeAccumABCD(Input1).GetValue("VolumeAccum", 0)) > i ))
   {
      EnterShort();
   }

}
}

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

Re: Как прописать правило стратегии?

Непрочитанное сообщение KakTak » 07 сен 2016, 00:46

но работает кривовато, ибо не так как нам надо складывает отрицательные числа

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

Re: Как прописать правило стратегии?

Непрочитанное сообщение KakTak » 07 сен 2016, 01:01

ан нет кладывает норм ет на z знак перепутал


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 17 гостей