[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 32

 

Уважаемые профессионалы! Недавно увлекся торговлей товарных календарных и интерконтрактных спредов на фьючерсном рынке. В связи с этим появилась необходимость в графиках синтетических иструментов. Смысл в том, что надо построить свечной график, рассчитаный по разнице цен OHLC например между бензином (XRB) и мазутом (HO). Я попытался решить эту задачу своими силами, так как формула расчета довольно проста - надо найти всего лишь разницу между ценами инструментов и записать полученные значения в файл истории, и далее уже в автономном режиме их использовать, применяя к ним всевозможные индикаторы. Благо, существует несколько готовых скриптов записывающих синтетические графики, например PeriodConverter. Решил начать с простого. Попробовал в указанный скрипт добавить код, который вычитает из цен графика на который бросаем скрипт, цены другого инструмента по соответствующим барам (с одним и тем же временем открытия). Чтобы пока не возиться с написанием кода для синхронизации баров двух инструментов по времени открытия, ввел параметр, который выделяет для рассчета только последние, скажем 50 баров, так как в большинстве случаев эти последние бары нет необходимости синхронизировать как по времени открытия, так и по индексации, они и так синхронизированы. Заведомо скомбинировал инструменты таким образом, чтобы при вычислениях не получалось отрицательных значений цен, так как насколько я знаю, терминал не выводит их на график. И вот что получилось. При открытии полученного с помощью модернизированного скрипта, синтетического графика в автономном режиме, на него не выводяться более половины рассчитаных баров! Однако при замене в скрипте операций вычитания цен на операцию сложения, тогда на график выводятся все рассчитаные бары. Чем же так отличается операция вычитания от операции сложения?  То же самое получается и с операциями умножения и деления - при умножении соответствующих цен, бары синтетического графика выводиться нормально, а при делении опять выводиться меньше половины баров! Вы можете сказать, что при делении возможно в знаменатель вкрался ноль. Но я проверял рассчитанные массивы функцией Comment, и она выводила каждый раз корректные значения, т.е. операции деления на ноль в моих тестах не было. И теперь я в тупике, не знаю что дальше делать с этим.

Если Вам не сложно уважаемы профессионалы, подскажите в чем зарыта собака! Выкладываю во вложениии свое творчество. Посмотрите пожайлуста код, что там надо добавить или изменить, чтобы скрипт заработал нормально. Мне хотя бы получить автономные графики, не обязательно чтобы он обновлялся в реальном времени, так как торговля спредами обычно подразумевается на среднесрочных масштабах, в расчете от нескольких дней до нескольких недель, поэтому скорость построения графиков не критична. Или возможно данная идея создания подобных графиков вообще не выполнима? 

Файлы:
 
hoz:

 Ну так а как изменится логике перемещение скобки вниз на строчку? Ведь структура то кода останется прежней и, соответственно, логика тоже...

это верно, но лаконичный вариант отличается не этим. В первом случае с начало мы смотрели на значение переменной n а потом ind. а во втором случае наоборот. Разница в том что после сравнение n мы в любом случае будем проверять значение ind. А вот если с начала проверять ind а потом n то количество операций упадет процентов на 45-49, так как ind в подавляющем большинстве случаев пустой. 
 
Мужики, а напомните где посмотреть расписание торгов на НГ, и торговые условия... спрэды наверное раз в 5 увеличат и маржинальные требования
 

Кто-нибудь знает, как заставить свободные редакторы электронных таблиц типа OpenOffice или LibreOffice не удалять незначащий первый ноль в текстовом формате?

Всё, что можно перечитал инете. Ничего не нашёл. Зачем только так настроены все подобные редакторы?... При чём, во всех редакторах написано, что текстовый формат выводит всё, как написано. 

 
Zhunko:

Кто-нибудь знает, как заставить свободные редакторы электронных таблиц типа OpenOffice или LibreOffice не удалять незначащий первый ноль в текстовом формате?

Всё, что можно перечитал инете. Ничего не нашёл. Зачем только так настроены все подобные редакторы?... При чём, во всех редакторах написано, что текстовый формат выводит всё, как написано. 


Может написать в кавычках? ""
 
keep87:

это верно, но лаконичный вариант отличается не этим. В первом случае с начало мы смотрели на значение переменной n а потом ind. а во втором случае наоборот. Разница в том что после сравнение n мы в любом случае будем проверять значение ind. А вот если с начала проверять ind а потом n то количество операций упадет процентов на 45-49, так как ind в подавляющем большинстве случаев пустой. 

 В точку! Вот я удивлён,действительно. Теперь я всё понял, благодарю.
 
Replikant:

спасибо!, 

но боюсь "немного" не получится))) - у меня трёхэтажная логическая формула с 16 параметрами типа bool) 

 

Какже Вас занесло...Возьмите int как раз 16 разрядов и каждый битик перебирайте..

 

//|                                                         test.mq4 |
//|                              Copyright © 2012 Mikhail Kozhemyako |
//|                                               ua3xcm@obninsk.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012 Mikhail Kozhemyako"
#property link      "ua3xcm@obninsk.com"
extern  int Биты=0;
bool СработалоУсловие№_i;
int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }
int start()
  {
   int i;
   int Сдвиг=1;
// Гденить здесь нужно определиться с вашими условиями
   for(i=0;i<=15;i++)
    {
     if(СработалоУсловие№_i)
      {
       Биты=Биты | Сдвиг;
      }
     Сдвиг=Сдвиг << 1; 
    }
   for(i=0;i<=15;i++)
    {
     if(0x0001 & Биты == 1)
      {
       // Делать что-то по условию i
      }
     Биты = Биты >> 1;
    }
   return(0);
  }

А в тестере поставьте перобор переменной Биты с 0 до 65535 с шагом 1. 

Не знаю, наваял, по моему должно сработать.... 

 
Доброго вечера! Скажите, вот на скрине теста написано- процент выигрыша коротких сделок0.   Это ведь селлы? Так я понимаю, что не один из них не принес прибыли?? Это что, говорит о крутом дисбалансе?   
 
Dimka-novitsek:
Доброго вечера! Скажите, вот на скрине теста написано- процент выигрыша коротких сделок0.   Это ведь селлы? Так я понимаю, что не один из них не принес прибыли?? Это что, говорит о крутом дисбалансе?   

Да, так и есть Короткие-Sell-Short. Но может они у Вас покакой-то причине просто не открывались.
 
chief2000:

Может написать в кавычках? ""

Как это обрабатывать? Спецформат для кривых программ? Часть инфы в кавычках, другая без... Или всё в кавычках?

Как-то неправильно писать нули в кавычках, если это текст. В CSV файлах всё текст. Это пользователь решает, что и как обрабатывать, а не программа-редактор.

Для Excel есть вариант апостроф ставить перед текстом. Решает все проблемы визуализации, но не контента. Зачем лишний символ? 

Причина обращения: