Суббота, 20.10.2018, 13:23
Игрушки от Vinin
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Разное » Идеи, статьи » Генератор торговых стратегий
Генератор торговых стратегий
coasterДата: Пятница, 31.10.2008, 02:26 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 7
Репутация: 0
Статус: Offline
В начале своей работы на Forex я уловил одну деталь: главное, чтобы была прибыльная торговая система.
Много времени ушло на то, чтобы понять: системы, которая всегда будет приносить прибыль - не существует. Но, как оказалось, это смотря что понимать под словом система. Ведь систематическая смена системы в соответствии с определённым вышестоящим алгоритмом - это также система. В конце-концов пришлось прийти к выводу, что любая система должна иметь определённый гарантийный срок эксплуатации, после которого её можно смело выкинуть на помойку. Но как быть: если я за такой огромный срок так и не смог найти прибыльную систему, которой хоть немного смог бы доверять свои средства, а теперь получается, что мне их нужно просто таки "штамповать" как на конвейере. wacko
Идея пришла, после прочтения статьи о генетических алгоритмах. Саму реализацию этих алгоритмов я понял очень смутно, но так и не успел понять их до конца, ведь пришла идея! smile
Речь идёт о включении в параметры тестера номеров булевых функций:
Code

   extern int A=9;
   extern int B=26;
   extern int C=52;
   //---- параметры-номера булевых функций
   extern int       P1=2;
   extern int       P2=9;
   extern int       P3=-5;
   extern int       P4=0;
   extern int       P5=-24;

каждая из которой - есть определённое правило, знак "минус" - означает инверсию, нуль - означает отсутствие правила. Пример:
Code

bool Func (int ExtParam)
   {
    if (ExtParam==0) return (true);   
          
    switch (ExtParam)
       {
        case 1:
           if (iIchimoku(NULL,0,A,B,C,MODE_TENKANSEN,1)>iIchimoku(NULL,0,A,B,C,MODE_KIJUNSEN,1)) return (true); else return (false); break;
        case -1:
           if (iIchimoku(NULL,0,A,B,C,MODE_TENKANSEN,1)<iIchimoku(NULL,0,A,B,C,MODE_KIJUNSEN,1)) return (true); else return (false); break;        
        case 2:
           if (Close[1]>iIchimoku(NULL,0,A,B,C,MODE_TENKANSEN,1)) return (true); else return (false); break;
        case -2:
           if (Close[1]<iIchimoku(NULL,0,A,B,C,MODE_TENKANSEN,1)) return (true); else return (false); break;
        //----- и так далее...
        }
   }    

Добавлено (31.10.2008, 02:26)
---------------------------------------------
А так будет выглядеть реализация открытия позиции в функции start():

Code

     int OpBuy, OpSell;
     static int BUYticket,SELLticket;
     OrdersPosition(555,OpBuy,OpSell); // возвращает количество открытых позиций
     //---- покупка
     if (Func(P1) && Func(P2) && Func(P3) && Func(P4) && Func(P5) && OpBuy==0)
           {
            if (OpSell>0) OrderClose(SELLticket,0.1,Ask,5,Red);
            BUYticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,5,Bid-StopLoss*Point,0,"",555,0,Blue);
            return(0);
           }

     //---- продажа          
     if (Func(-P1) && Func(-P2) && Func(-P3) && Func(-P4) && Func(-P5) && OpSell==0)
           {
            if (OpBuy>0) OrderClose(BUYticket,0.1,Bid,5,Blue);
            SELLticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,5,Ask+StopLoss*Point,0,"",555,0,Red);
            return(0);
           }

Что получается в итоге? А в итоге, после оптимизации "параметров" получаются оптимальные комбинации правил, которые осталось лишь выбрать по собственным статистическим критериям, протестировать их на различных временных участках и, с помощью математических статистических инструментов, определить вероятность их дальнейшей работоспособности. Вот здесь, конечно, и начинаются трудности. Во первых: показатели тестера абсолютно не устраивают, т.к. одна комбинация, к примеру, совершает 200 сделок в год, а другая - всего 3. Понятно, что при отборе оптимальных правил придётся учитывать и свопы, и спрэды и активность стратегии, и хотелось бы иметь множество своих собственных критериев отбора. Но основное неудобство, что всё это приходится уже делать вручную в Excele, а после всего, ведь необходимо ещё и протестировать выбранные правила на всеразличных временных участках. Надеюсь, что здесь мне удастся услышать здоровую критику и совместными усилиями доработать этот недоработанный "механический конвейер".


Сообщение отредактировал coaster - Пятница, 31.10.2008, 02:31
 
KoreyДата: Пятница, 28.11.2008, 00:15 | Сообщение # 2
Рядовой
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
для генерации ТС доступен NeuroShellTrader.
- выбираете индикаторы, задаете условия, вписываетe дополнительные условия)))
щелкаете мышкой.
несколько секунд и это "смарт изи терминал" создает эксперта, оптимизирует его на истории(!) и выдает картинку со стрелочками - торгуй.
правда в формате метастока и трэйд стайшэн.
имеется порт к МТ-4 и т.д.
ну в общем можно ничего не знать, мечта продюсера
....разработчиков может привлечь скорость проверки "новых идей"


Forex как и Судьба - Она.
 
coasterДата: Пятница, 28.11.2008, 07:05 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 7
Репутация: 0
Статус: Offline
Спасибо за рекомендации. Доберусь и до этого. Но поэтапно. Мне бы со статистикой разобраться, а граали штамповать на видимых участках уже умею, жаль только на будущих участках они не штампуются. Что порекомендуете по статанализу для МТ4?
 
KoreyДата: Пятница, 28.11.2008, 12:59 | Сообщение # 4
Рядовой
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
NS Trader у меня как и у всех крякнутый, но вот что поразительно - скоростьработы. Оптимизация занимает столькко же времени сколь в МТ-4 компиляция.
MQL-4 ужасный тормоз,
Если не лезть в дебри вычмата, т.е. если не перебирать алгоритмы и не пытаться самостоятельно их оценивать.
тем более заново писать, то лучшее ( на мой взгляд)) будет :
Библиотека Fortran => не мучатся => DLL
....
посоветовать то я посоветовал, а вот сам статистику не использую, и даже фортран снес чтобы не отвлекал,
чисто Фэн-Шуй - год не пользуешься - выкинь)))
чем больше статистики этой - тем дальше от торговли.
Можно веками сидеть в матлабе и точить матметоды для самоуспокоения.
Можно радоваться Statistiсe 8, но где результат?


Forex как и Судьба - Она.

Сообщение отредактировал Korey - Пятница, 28.11.2008, 13:22
 
coasterДата: Воскресенье, 30.11.2008, 06:05 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 7
Репутация: 0
Статус: Offline
Как же без статистики? И по каким критериям определяете надежность ТС? На глазок?
Работа - работой. Проги сами торгуют - и у меня принцип - если не свистят об ошибках, то до скончания отведённого ей времени я к ней не лезу. Ну а раз проги сами по себе работают, то есть свободное время для статистики. А чего: глядеть и нервничать как советник торгует? Зачем?
Отторгует свое: тогда - разбор полётов. А чем ещё заниматься, кроме статистических расчётов? Вручную я не торгую. Направление меня не волнует. Психика - в порядке. smile
 
KoreyДата: Воскресенье, 30.11.2008, 16:20 | Сообщение # 6
Рядовой
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
генетические алгоритмы очень просты.
Имеем несколько ТС, в этих ТС имеем сигналы, их сигналы - это некая логическая конструкция= составная функция с параметрами.
1. Классическая оптимизация: перебрать всевозможные комбинации сигналов и перебрать все возможные параметры.
Это уходит в бесконечность.
2. Генетическое решение: найти хотя бы два(три и т.д.) субоптимальных варианта и ...случайным образом скомпоновать из них потомка (==скрещивание),
далее провести оптимизацию параметров потомка. Т.е. генетика это модификация метода Монте Карло.
Процесс останавливается когда не наблюдаются улучшения или когда не находится экземпляров для размножения.
Реализовать это в Тестере стратений почти что возможно, тут сложность в том что и как может сохранить советник к следующему циклу оптимизации.
но - главное - имея здоровую психику было бы лучше не портить нервы MQL-ем, а честно юзать в реальном Си.
....
P.S. Одна из загадок: почему при описании Генетических алгоритмов избегают упоминание "Монте Карло"?
Ведь это бы сразу же внесло математическую ясность, и не отпугивало бы... и у кибернетиков было бы меньше кибернетических же понтов.
..наверное опять математики поссорились....


Forex как и Судьба - Она.

Сообщение отредактировал Korey - Воскресенье, 30.11.2008, 16:31
 
coasterДата: Воскресенье, 30.11.2008, 23:30 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 7
Репутация: 0
Статус: Offline
Quote (Korey)
было бы лучше не портить нервы MQL-ем, а честно юзать в реальном Си.

У меня по реальному СИ начинает уже книжная библиотека собираться. Но никакой среды для практики. Хотелось бы не зависеть от разработчиков, но применяю, то что уже знаю, т.е. MQL4. А с какой стороны подойти к Cи++ пока не знаю.
Понимаю, что для Си++шников MQL4 будет выглядеть примитивом. Но для практического изучения Си++ необходимо по крайней мере свободное время, хотя желание есть огромное. Что Вы можете порекомендовать в качестве среды разработки кода в Си++? Желательно руссифицированной и интуитивно понятной.
 
KoreyДата: Понедельник, 01.12.2008, 01:23 | Сообщение # 8
Рядовой
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
С++/MQL-4 == выигрыш в скорости исполнения 80-120 раз и более.
==своя генетика в Тестере может не состояться из-за нехватки календарного времени на одну оптимизацию.
тут много копий сломано, напрмер я устарел как мамонт и потому сторонник простых сред, = чтобы было время и поработать
1. т.е. С5++, С6++ - эти удобны своей простотой, их недостаток - трудности с большими объемами данных.
2. Borland C++ Builder6 - оптимально нет излишней сложности, нет ограничений по памяти,
+небольшой объем для скачивания 600..800М, не то что у некоторых 12 G))) недостаток - чуть медленне чем С6++
, и в1,5 раза медленнее чем С#
(((но этим советом я могу поднять бурю т.к. отверг ужасный С# )))
J++ не советую т.к. типа MQL-4, легко программировать, но тяжело исполняется.
---
руссификация весьма относительна - это якобы руссфикация - подписи кнопок русские, а все хэлпы ангельские.
т.е. руссификация языка пограммирования всегда недостаточна, и поэтому лучше руссификацию в языках не использовать.


Forex как и Судьба - Она.
 
Форум » Разное » Идеи, статьи » Генератор торговых стратегий
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2018Бесплатный конструктор сайтов - uCoz