Страница 3 из 5
Re: Подсчет роботом точек Input1.Close
Добавлено: 10 фев 2016, 11:37
Den
Открытием не будет. Вы просто недопонимаете немного.
В том-то и дело, что несмотря на то, что это одно и то же, Close свечей отличаются от формируемой скользящими средними Close.
На формируемой скользящей линии число возникаемых волн не соответствует числу закрытий Close каждой свечи. В этом загвоздка .
Закрыв правую часть я скажу что будет дальше , ведь есть правило - Три верх, три вниз или 4 вверх 4 вниз ( в зависимости от фрейма).
Именно этому я хочу научить робота, но он умеет считать только закрытия свечей, а они не совпадают в числом волн.
Re: Подсчет роботом точек Input1.Close
Добавлено: 10 фев 2016, 11:40
evge
Den писал(а):Вы просто недопонимаете немного.
Вероятно в этом проблема.
Re: Подсчет роботом точек Input1.Close
Добавлено: 10 фев 2016, 11:43
Den
Да, все верно. Только проблема в том, что не все CLose формируют волны.
Есть плоские интервалы, которые НЕ являются волнами ( то есть они не считаются). А робот считает все.
Тут видимо необходимо задать ему условие при котором он не будет считать плоские интервалы. Вот это выход, кстати.
Re: Подсчет роботом точек Input1.Close
Добавлено: 10 фев 2016, 12:15
Den
Как задать ему условие, чтобы он не считал плоские интервалы Close???
Re: Подсчет роботом точек Input1.Close
Добавлено: 10 фев 2016, 12:20
evge
Den писал(а):плоские интервалы
плоские это понятие растяжимое и относительное
1-2 пункта разницы - это плоское , а 3 уже не плоское?
Как я говорил до этого уже не один раз. Пишется свой индикатор, который отвечает на эти вопросы и дает сигналы для стратегии.
Это субъективные вещи. У вас это плоское, у Васи - кривое, у Пети - косое.
Всё таки Вам надо понять как работают роботы в АД4. Ранее не раз уже здесь писал, нужно лишь услышать...
Можно побывать на вебинаре, прослушать и не попробовать и не понять.
Re: Подсчет роботом точек Input1.Close
Добавлено: 10 фев 2016, 12:28
evge
Вот пример
результат:
- NePloskoe-01.png (35.78 КБ) 22097 просмотров
Код стратегии
Код: Выделить всё
/**
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 (50.12 КБ) 22097 просмотров
Грааля, как видите, не получилось
Конечно это не та идея, что у Вас. Это просто пример Плоское или нет, как вариант по анализу свечей со сдвигом
анализ 3х последних свечей.
вход с запаздыванием на 1 свечу
Re: Подсчет роботом точек Input1.Close
Добавлено: 10 фев 2016, 12:43
Den
Плоский это не от забора до обеда - плоский это менее 1 рубля на Sih6, менее 1 коп на сбере ( например ) - это же очевидно.
Именно такие интервалы скользящая средняя не рисует вершинами, а рисует примерно горизонтальную линию.
На этой стратегии конечно ничего не получится - она не учитывает волны. Это просто входы-выходы на свечах.
КАК ЗАДАТЬ УСЛОВИЕ РОБОТУ НЕ СЧИТАТЬ ПЛОСКИЕ ИНТЕРВАЛЫ НА СКОЛЬЗЯЩЕЙ СРЕДНЕЙ?
Re: Подсчет роботом точек Input1.Close
Добавлено: 10 фев 2016, 13:27
evge
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) в виде индикатора, добавляете её (его) в правила стратегии. Запускаете. Ждете профит. Идите в кассу за $. Всё элементарно и просто.
Re: Подсчет роботом точек Input1.Close
Добавлено: 10 фев 2016, 14:12
Den
Это не игнорирование плоского интервала - это просто заход в позицию на 3-х свечах ,если третья ниже второй, вторая выше первой.
Данная стратегия вообще не учитывает плоские интервалы.
Обычно, на трех волнах SMA примерно от 6 до 12 свечей - то есть часть из них плоские, рисуют линию примерно горизонтально.
Их необходимо роботу проигнорировать.
Вот только в этом случае получится разволновка.
Re: Подсчет роботом точек Input1.Close
Добавлено: 10 фев 2016, 14:15
evge
Ну не думаю что в N раз стоит говорить что надо делать.
Как работает робот и на что реагирует примеры я дал. Далее дело за реализацией Ваших мыслей в код.