Стратегии и роботы > Подсчет роботом точек Input1.Close

Обсуждение, описание стратегий и роботов, идеи для стратегий
Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Подсчет роботом точек Input1.Close

Непрочитанное сообщение Den » 10 фев 2016, 11:37

Открытием не будет. Вы просто недопонимаете немного.

В том-то и дело, что несмотря на то, что это одно и то же, Close свечей отличаются от формируемой скользящими средними Close.

На формируемой скользящей линии число возникаемых волн не соответствует числу закрытий Close каждой свечи. В этом загвоздка .

Закрыв правую часть я скажу что будет дальше , ведь есть правило - Три верх, три вниз или 4 вверх 4 вниз ( в зависимости от фрейма).

Именно этому я хочу научить робота, но он умеет считать только закрытия свечей, а они не совпадают в числом волн.
Последний раз редактировалось Den 11 фев 2016, 10:58, всего редактировалось 1 раз.

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

Re: Подсчет роботом точек Input1.Close

Непрочитанное сообщение evge » 10 фев 2016, 11:40

Den писал(а):Вы просто недопонимаете немного.


Вероятно в этом проблема.
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Подсчет роботом точек Input1.Close

Непрочитанное сообщение Den » 10 фев 2016, 11:43

Да, все верно. Только проблема в том, что не все CLose формируют волны.
Есть плоские интервалы, которые НЕ являются волнами ( то есть они не считаются). А робот считает все.
Тут видимо необходимо задать ему условие при котором он не будет считать плоские интервалы. Вот это выход, кстати.
Последний раз редактировалось Den 11 фев 2016, 10:58, всего редактировалось 1 раз.

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Подсчет роботом точек Input1.Close

Непрочитанное сообщение Den » 10 фев 2016, 12:15

Как задать ему условие, чтобы он не считал плоские интервалы Close???
Последний раз редактировалось Den 11 фев 2016, 10:58, всего редактировалось 1 раз.

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

Re: Подсчет роботом точек Input1.Close

Непрочитанное сообщение evge » 10 фев 2016, 12:20

Den писал(а):плоские интервалы


плоские это понятие растяжимое и относительное :) 1-2 пункта разницы - это плоское , а 3 уже не плоское?

Как я говорил до этого уже не один раз. Пишется свой индикатор, который отвечает на эти вопросы и дает сигналы для стратегии.

Это субъективные вещи. У вас это плоское, у Васи - кривое, у Пети - косое.

Всё таки Вам надо понять как работают роботы в АД4. Ранее не раз уже здесь писал, нужно лишь услышать...

Можно побывать на вебинаре, прослушать и не попробовать и не понять.
никогда такого не было и вот опять

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

Re: Подсчет роботом точек Input1.Close

Непрочитанное сообщение evge » 10 фев 2016, 12:28

Вот пример

результат:

NePloskoe-01.png
NePloskoe-01.png (35.78 КБ) 7459 просмотров


Код стратегии

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

/**
NePloskoe
Developed by evge;
Hash code 0EDD9B5ED15722A4B2F200B2533F6B75
**/
function Initialize()
{
   StrategyName = "NePloskoe";
   AddParameter("P1", 0, "", 1);
   AddInput("Input1", Inputs.Candle, 60, true, "SBER=МБ ЦК");
   LongLimit = 0;
   ShortLimit = 0;
}

function OnUpdate()
{
   /// ПРАВИЛО 1
   if ( (Input1.Close[2] < Input1.Close[1]) && (Input1.Close[1] > Input1.Close) )
   {
      EnterShort();
   }

   /// ПРАВИЛО 2
   if ( (Input1.Close[2] > Input1.Close[1]) && (Input1.Close[1] < Input1.Close) )
   {
      EnterLong();
   }

}


Результат тестирования:

NePloskoe-02.png
NePloskoe-02.png (50.12 КБ) 7459 просмотров


Грааля, как видите, не получилось :)

Конечно это не та идея, что у Вас. Это просто пример Плоское или нет, как вариант по анализу свечей со сдвигом

анализ 3х последних свечей.

вход с запаздыванием на 1 свечу
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Подсчет роботом точек Input1.Close

Непрочитанное сообщение Den » 10 фев 2016, 12:43

Плоский это не от забора до обеда - плоский это менее 1 рубля на Sih6, менее 1 коп на сбере ( например ) - это же очевидно.
Именно такие интервалы скользящая средняя не рисует вершинами, а рисует примерно горизонтальную линию.

На этой стратегии конечно ничего не получится - она не учитывает волны. Это просто входы-выходы на свечах.

КАК ЗАДАТЬ УСЛОВИЕ РОБОТУ НЕ СЧИТАТЬ ПЛОСКИЕ ИНТЕРВАЛЫ НА СКОЛЬЗЯЩЕЙ СРЕДНЕЙ?
Последний раз редактировалось Den 11 фев 2016, 10:59, всего редактировалось 1 раз.

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

Re: Подсчет роботом точек Input1.Close

Непрочитанное сообщение evge » 10 фев 2016, 13:27

Den писал(а):Плоский это не от забора до обеда - плоский это менее 1 рубля на Sih6, менее 1 коп на сбере ( например ) - это же очевидно.


Вася и Петя с Вами не согласны. Я соглашусь, но Васю и Петю не проигнорирую.

evge писал(а):КАК ЗАДАТЬ УСЛОВИЕ РОБОТУ НЕ СЧИТАТЬ ПЛОСКИЕ ИНТЕРВАЛЫ НА СКОЛЬЗЯЩЕЙ СРЕДНЕЙ?


Чем Вас не устраивает пример игнорирования, продемонстрированный мною выше? Вместо Input.Close я мог взять SMA(1) :) что равнозначно

Привожу код:

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

/**
NePloskoe
Developed by evge;
Hash code 4C53B824DC314A574DE61BB98BD9FAFB
**/
function Initialize()
{
   StrategyName = "NePloskoe";
   AddParameter("P1", 0, "", 1);
   AddInput("Input1", Inputs.Candle, 60, true, "SBER=МБ ЦК");
   LongLimit = 1;
   ShortLimit = -1;
}

function OnUpdate()
{
   /// ПРАВИЛО 1
   if ( (SMA(Input1.Close, 1)[2] < SMA(Input1.Close, 1)[1]) && (SMA(Input1.Close, 1)[1] > SMA(Input1.Close, 1)) )
   {
      EnterShort();
   }

   /// ПРАВИЛО 2
   if ( (SMA(Input1.Close, 1)[2] > SMA(Input1.Close, 1)[1]) && (SMA(Input1.Close, 1)[1] < SMA(Input1.Close, 1)) )
   {
      EnterLong();
   }

}


Что здесь происходит!

На каждом закрытии свечи проверяется:

ЕСЛИ
Правило 1. SMA (один момент назад) БОЛЬШЕ чем SMA (текущий и 2 момента назад) ТО это вершина волны :). Надо срочно открывать SHORT

Правило 2. SMA (один момент назад) МЕНЬШЕ чем SMA (текущий и 2 момента назад) ТО это дно волны :). Надо срочно открывать LONG

скриншоты не стал, т.к. результат одинаковый что со свечами :)

ЭТО КАК ПРОСТЕЙШИЙ ПРИМЕР Вашего желания исключить плоские движения.

Вам не нравится? Придумали сложнее? Заложили в алгоритм! Хотите считать волны? Пожалуйста. Открываете редактор пишите считалку волн по SMA(1) в виде индикатора, добавляете её (его) в правила стратегии. Запускаете. Ждете профит. Идите в кассу за $. Всё элементарно и просто. :)
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Подсчет роботом точек Input1.Close

Непрочитанное сообщение Den » 10 фев 2016, 14:12

Это не игнорирование плоского интервала - это просто заход в позицию на 3-х свечах ,если третья ниже второй, вторая выше первой.
Данная стратегия вообще не учитывает плоские интервалы.

Обычно, на трех волнах SMA примерно от 6 до 12 свечей - то есть часть из них плоские, рисуют линию примерно горизонтально.
Их необходимо роботу проигнорировать.
Вот только в этом случае получится разволновка.
Последний раз редактировалось Den 11 фев 2016, 10:59, всего редактировалось 1 раз.

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

Re: Подсчет роботом точек Input1.Close

Непрочитанное сообщение evge » 10 фев 2016, 14:15

Ну не думаю что в N раз стоит говорить что надо делать.
Как работает робот и на что реагирует примеры я дал. Далее дело за реализацией Ваших мыслей в код.
никогда такого не было и вот опять


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

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

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