Morse code

 

Суть советника - это задание определённых комбинаций свечей. Правила такие: свеча бычья - значит "1", свеча медвежья - значит "0". То есть можно простым указанием "101" задать поиск таких комбинаций свечей:

Morse code

Пока проблема в кодировании представления комбинаций - во входных параметрах нельзя задать число в бинарном виде.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Morse code

Vladimir Karputov, 2017.04.06 10:25

Пока Morse code version   "1.003": можно вручную задавать строковое описание паттерна и даже прогонять в тестере одиночные проходы.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Morse code

Vladimir Karputov, 2017.04.07 08:42

Morse code version "1.005"

...

Решилось две проблемы:

1). пользователь видит во входных параметрах паттерн в виде "0101":

Удобное вид входного пареметра

2). Входной параметр отлично поддаётся оптимизации в тестере.



 
Vladimir Karputov:

Суть советника - это задание определённых комбинаций свечей. Правила такие: свеча бычья - значит "1", свеча медвежья - значит "0". То есть можно простым указанием "101" задать поиск таких комбинаций свечей:

Пока проблема в кодировании представления комбинаций - во входных параметрах нельзя задать число в бинарном виде.


можно текстом а потом распарсить строку....
 

Прикольно).

Во входных параметрах можно задавать числа в десятичном виде. А его можно и переводить в двоичный вид или уже использовать как последовательность двоичных знаком вытягивая каждый бит по отдельности. Всё просто)).


 
Vladimir Pastushak:

можно текстом а потом распарсить строку....

Как черновой вариант я так и сделал, плюс проверки всякие - на длину строки и чтобы только символы '0' и '1' были в строке. Но тут новая беда: такую строку нельзя прогнать в тестере в режиме оптимизации :).
 
Aliaksandr Hryshyn:

Прикольно).

Во входных параметрах можно задавать числа в десятичном виде. А его можно и переводить в двоичный вид или уже использовать как последовательность двоичных знаком вытягивая каждый бит по отдельности. Всё просто)).



Задать как параметр в бинарном виде можно, а вот представить во входных параметрах в бинарном виде не выйдет:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Входной параметр в бинарном виде

Vladimir Karputov, 2017.04.05 09:24

Пример из справки Типы char, short, int и long:

... Для целочисленных переменных значения можно задавать в бинарном виде с помощью префикса B. Например, можно закодировать рабочие часы торговой сессии в переменную типа int и использовать информацию о них согласно требуемому алгоритму:

//--- для рабочих часов ставим 1, для нерабочих указываем 0 
   int AsianSession   =B'111111111'; // азиатская сессия с 0:00 часов до 9:00 
   int EuropeanSession=B'111111111000000000'; // европейская сессия  9:00 - 18:00 
   int AmericanSession =B'111111110000000000000011'; // американская 16:00 - 02:00 


Но задать в бинарном виде входной параметр (именно в виде 111111111000000000) -

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                                      Copyright 2017, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property script_show_inputs
//--- для рабочих часов ставим 1, для нерабочих указываем 0 
input int AsianSession=B'111111111'; // азиатская сессия с 0:00 часов до 9:00 
input int EuropeanSession=B'111111111000000000'; // европейская сессия  9:00 - 18:00 
input int AmericanSession=B'111111110000000000000011'; // американская 16:00 - 02:00 
//---
string text="10";
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
//---

  }
//+------------------------------------------------------------------+

не выйдет - во входных параметрах бинарное представление числа преобразовывается в обычное число:

Входные параметры


Вопрос: есть ли способ задавать во входных параметрах значения именно в бинарном виде (чтобы пользователь видел не число, а именно бинарное представление, вроде 111111111000000000)?


 
Ситуация кажется не очень надежной для свечей с Close == Open
И напрашивается на  вариант -1 0 1
Где 0 - подходит для любого направления
 
Vladimir Karputov:

Как черновой вариант я так и сделал, плюс проверки всякие - на длину строки и чтобы только символы '0' и '1' были в строке. Но тут новая беда: такую строку нельзя прогнать в тестере в режиме оптимизации :).


сделайте входной параметр типом int далее перевидите тип инт в стринг и распарсите ....

 
Sergey Dzyublik:
Ситуация кажется не очень надежной для свечей с Close == Open
И напрашивается на  вариант -1 0 1
Где 0 - подходит для любого направления

Я вариант "Close == Open" выкинул как неблагонадёжный -> у такой свечи нет направления.
 
Какой INT ?
Тут только через стринг или масивы.
 
Vladimir Karputov:

Задать как параметр в бинарном виде можно, а вот представить во входных параметрах в бинарном виде не выйдет:


Писал, что можно задавать в десятичном виде, как обычное целое число,а дальше вытягивать с него отдельные биты.
 
Vladimir Karputov:

Я вариант "Close == Open" выкинул как неблагонадёжный -> у такой свечи нет направления.

Ну тогда нужно рассматривать все варианты через жидкий график.
Так как то что выкинуто, могло на -30 сек таймфрейме дать полноценное направление
Причина обращения: