Стратегии и роботы > [Error] Имя "MACD" Отсутствует в текущем контексте at 13

Обсуждение, описание стратегий и роботов, идеи для стратегий
Igor
Сообщения: 10
Зарегистрирован: 09 дек 2021, 10:08
Благодарил (а): 2 раза
Поблагодарили: 4 раза

[Error] Имя "MACD" Отсутствует в текущем контексте at 13

Непрочитанное сообщение Igor » 04 май 2023, 09:04

Выскакивает Ошибка при попытке скомпелировать код.
[Error] Имя "MACD" Отсутствует в текущем контексте at 13
и весь код автоматически комментируется.

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

//----------- Код, оказавшийся вне методов -----------//
//using QuantaculaCore;
//function OnUpdate()
//{
// double m0 = macd.GetValue("Histogram", 0);
// double m1 = macd.GetValue("Histogram", 1);
// double sma = SMA(Input1.Close, Period)[0]; 
//
// bool inMarket = (PositionMarketValue("MyPosition") != 0); // добавляем переменную, которая проверяет наличие позиций на рынке
// 
// /// ПРАВИЛО 1
// if ( !inMarket && Input1.Close[0] > sma && m0 > 0 && m1 < 0 ) // добавляем проверку на наличие позиций на рынке
// {
//  EnterLong("MyPosition"); // используем явный номер позиции
// }
//
// /// ПРАВИЛО 2
// if ( inMarket && macd.GetValue("Histogram", 0) < 0.0 ) // добавляем проверку на наличие позиций на рынке
// {
//  CloseLong("MyPosition");
// }
//
// /// ПРАВИЛО 3
// if ( !inMarket && Input1.Close[0] < sma && m0 < 0.0 && m1 >= 0.0 ) // добавляем проверку на наличие позиций на рынке
// {
//  EnterShort("MyPosition");
// }
//
// /// ПРАВИЛО 4
// if ( inMarket && m0 > 0.0 ) // добавляем проверку на наличие позиций на рынке
// {
//  CloseShort("MyPosition");
// }
//}

Что это значит? как это исправить.

BugsDigger
Сообщения: 533
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 91 раз

Re: [Error] Имя "MACD" Отсутствует в текущем контексте at 13

Непрочитанное сообщение BugsDigger » 05 май 2023, 19:21

Кажется, что не соблюден регистр (C# - регистрозависимый).
Д.б. как в документации - "MACD".

Igor
Сообщения: 10
Зарегистрирован: 09 дек 2021, 10:08
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: [Error] Имя "MACD" Отсутствует в текущем контексте at 13

Непрочитанное сообщение Igor » 11 май 2023, 11:30

BugsDigger писал(а):Кажется, что не соблюден регистр (C# - регистрозависимый).
Д.б. как в документации - "MACD".

Спасибо за ответ!
Не понял, что означает Д.б.?
Вот верхняя часть кода:

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

function Initialize()
{
   StrategyName = "Beta_MACD_SMA-GPT";
   AddParameter("P1", 0, "", 1);
   AddInput("Input1", Inputs.Candle, 1, true, "");
   LongLimit = 1;
   ShortLimit = -1;
    AddParameter("Pfast", 43, "быстрая ema MACD");
    AddParameter("Pslow", 137, "медленная ema MACD");
    AddParameter("Psig", 13, "сигнальная ema MACD");
    AddInput("Input1", Inputs.Candle, 60, true, "AFLT=МБ ЦК");

   var  mcd = MACD(Input1.Close, Pfast, Pslow, Psig); // объявляем переменную macd для использования в OnUpdate()
 
    AddChartIndicator("MACD", new Dictionary <string, string>{{"PeriodFast", "Pfast"},{"PeriodSlow", "Pslow"},{"PeriodSignal", "Psig"}});
    AddChartIndicator("SMA", new Dictionary <string, string>{{"Period", "Period"}});
}

Igor
Сообщения: 10
Зарегистрирован: 09 дек 2021, 10:08
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: [Error] Имя "MACD" Отсутствует в текущем контексте at 13

Непрочитанное сообщение Igor » 11 май 2023, 11:39

Может кто то знает, где посмотреть список ОШИБОК или описание ошибок компилятора?

Maks
Сообщения: 52
Зарегистрирован: 15 июн 2020, 15:29
Благодарил (а): 8 раз
Поблагодарили: 27 раз

Re: [Error] Имя "MACD" Отсутствует в текущем контексте at 13

Непрочитанное сообщение Maks » 11 май 2023, 16:18

Igor писал(а):Не понял, что означает Д.б.?

должно быть)

Igor писал(а):var mcd = MACD(Input1.Close, Pfast, Pslow, Psig); // объявляем переменную macd для использования в OnUpdate()

это должно быть в функции OnUpdate() а не Initialize()

Igor писал(а)://using QuantaculaCore;

это вообще использовать нельзя, неймспейсы не поддерживаются

Igor писал(а):Может кто то знает, где посмотреть список ОШИБОК или описание ошибок компилятора?

компилятор С# и все ошибки оттуда)

лучше всего смотреть примеры использования в библиотеке стратегий или здесь на форуме.
например, взять любого робота, торгующего по масд, убрать лишнее, добавить своё.
Половины ошибок как минимум не будет)

Igor
Сообщения: 10
Зарегистрирован: 09 дек 2021, 10:08
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: [Error] Имя "MACD" Отсутствует в текущем контексте at 13

Непрочитанное сообщение Igor » 12 май 2023, 03:06

Maks писал(а):
Igor писал(а):Не понял, что означает Д.б.?

должно быть)

Igor писал(а):var mcd = MACD(Input1.Close, Pfast, Pslow, Psig); // объявляем переменную macd для использования в OnUpdate()

это должно быть в функции OnUpdate() а не Initialize()

Igor писал(а)://using QuantaculaCore;

это вообще использовать нельзя, неймспейсы не поддерживаются

Igor писал(а):Может кто то знает, где посмотреть список ОШИБОК или описание ошибок компилятора?

компилятор С# и все ошибки оттуда)

лучше всего смотреть примеры использования в библиотеке стратегий или здесь на форуме.
например, взять любого робота, торгующего по масд, убрать лишнее, добавить своё.
Половины ошибок как минимум не будет)


Спасибо Большое за Ответ!


Вернуться в «Стратегии и роботы»

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

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