Общие вопросы по разработке > Добавление новых функций в код

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Kostyan777
Сообщения: 12
Зарегистрирован: 26 апр 2020, 18:17

Добавление новых функций в код

Непрочитанное сообщение Kostyan777 » 03 май 2020, 20:06

Как добавить в код робота другие функции помимо условий?
Например сделал проверку экстремумов в отдельной функции, но компиллятор ее закомментировал .

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

function OnUpdate()
{
   a= CheckExtremums()

}

int function CheckExtremums()
{
   /// Пересчет ценовых экстремумов      
   ***
   
   /// Пересчет гистограммных экстремумов
***
}

Аватара пользователя
evge
Администратор
Сообщения: 1652
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 303 раза
Контактная информация:

Re: Добавление новых функций в код

Непрочитанное сообщение evge » 03 май 2020, 20:37

Так не получится, ограничения АД4.

Обсуждалось ранее здесь. Было добавлено после в F.A.Q.

Получится вот так, в Evaluate(), в Update():

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

function Evaluate()
{
/*
Func<T,TResult> универсальный делегат
Экземпляр этого делегата можно создать как

 Func<int,bool> myFunc
 
где int — входной параметр, а bool — возвращаемое значение.
Возвращаемое значение всегда указывается в последнем параметре типа.
Func<int, string, bool> определяет делегат с двумя входными параметрами, int и string, и типом возвращаемого значения bool.
*/
 Func<int, string, bool> myFunc = (int x, string s) =>
  {
   s+="qq";
   return x == 5;
  };
 
 bool result = myFunc(4, "qq");
}

Пример 2

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

Func<int, int, int> myFunc = (int x, int y) =>
  {
   return x + y;
  };
 
 A = myFunc(1, 2) + myFunc(3, 4) + myFunc(5, 6);


в индикаторе выдало в серию A - 21
никогда такого не было и вот опять

Kostyan777
Сообщения: 12
Зарегистрирован: 26 апр 2020, 18:17

Re: Добавление новых функций в код

Непрочитанное сообщение Kostyan777 » 03 май 2020, 21:59

А как мне узнать, какой тип у MACD(Input1.Close, Pfast, Pslow, Psig).getValue ?

Аватара пользователя
evge
Администратор
Сообщения: 1652
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 303 раза
Контактная информация:

Re: Добавление новых функций в код

Непрочитанное сообщение evge » 04 май 2020, 05:47

Double,

Но похоже речь не о типе, а о наименованиях серий,если их более чем одна.

Добавьте индикатор на график и посмотрите как названы серии в его настройках.

Проще получать серии не через GetValue, а так:

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

var M = MACD(Input1, Pfast, Pslow, Psig);
var L = M["Line"];
var S = M["Signal"];


Далее получать значения этих серий по смещению, вот так:

L[x], S[x]

x - смещение, 0 - текущий бар
никогда такого не было и вот опять


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

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

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