Общие вопросы по разработке > EnterLongLimit

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
AlexRate
Сообщения: 10
Зарегистрирован: 09 ноя 2019, 21:21

EnterLongLimit

Непрочитанное сообщение AlexRate » 23 май 2020, 19:43

Подскажите, пожалуйста, как правильно задать условие открытия/закрытия позиции?
Как правильно заменить EnterLong () на команду EnterLongLimit по цене ASK минус 0,01%
И соответственно EnterShortLimit по цене BID плюс 0,01%

_________________________


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

function Initialize()
{
   StrategyName = "Alfa_Regress_SMA_Cross";
   AddParameter("Pfast", 1079, "Период быстрой регрессии", 1);
   AddParameter("Extr", 0, "Прогноз регресии", 1);
   AddParameter("Pslow", 1, "Период медленной sma", 1);
   AddInput("Input1", Inputs.Candle, 1, true, "PIKK=МБ ЦК");
   AddChartIndicator("MY.LinReg", new Dictionary <string, string>{{"Period", "Pfast"},{"Extr", "Extr"} });
   AddChartIndicator("SMA", new Dictionary <string, string>{{"Period", "Pslow"}});
}

function OnUpdate()
{
    var a = MY.LinReg(Input1.Close, Pfast, Extr);
   var b = SMA(Input1.Close, Pslow);

   /// ПРАВИЛО 1
   if ( a > b)
   {
      EnterLong();
   }
   
   /// ПРАВИЛО 2
   if ( a < b)
   {
      EnterShort();
   }
}

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

Re: EnterLongLimit

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

Здравствуйте!

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

function Initialize()
{
   StrategyName = "Alfa_Regress_SMA_Cross";
   AddParameter("Pfast", 1079, "Период быстрой регрессии", 1);
   AddParameter("Extr", 0, "Прогноз регресии", 1);
   AddParameter("Pslow", 1, "Период медленной sma", 1);
   AddInput("Input1", Inputs.Candle, 1, true, "PIKK=МБ ЦК");
   AddChartIndicator("MY.LinReg", new Dictionary <string, string>{{"Period", "Pfast"},{"Extr", "Extr"} });
   AddChartIndicator("SMA", new Dictionary <string, string>{{"Period", "Pslow"}});
}

function OnUpdate()
{
    var a = MY.LinReg(Input1.Close, Pfast, Extr);
   var b = SMA(Input1.Close, Pslow);

   /// ПРАВИЛО 1
   if ( a > b)
   {
      EnterLongLimit(GetAsk() * 0.9999);
   }
   
   /// ПРАВИЛО 2
   if ( a < b)
   {
      EnterShortLimit(GetBid() * 1.0001);
   }
   
}
никогда такого не было и вот опять

AlexRate
Сообщения: 10
Зарегистрирован: 09 ноя 2019, 21:21

Re: EnterLongLimit

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

Спасибо большое
Я так и не понял, что делал неправильно
Видимо скобочки кавычки где -то пропустил


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

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

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