[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 687

 
ОГРОМНОЕ СПАСИБО!!!!
 
ToLik_SRGV:

Борис ну это совсем не трудно, вот вам простая функция реализующая принцип мартингейла: ...

Изящное решение, но я бы добавил инструкцию: 1. Не использовать при одновременной торговле на нескольких инструментах. 2. Отключать советник перед выводом средств и на период начисления свопов.

 
ToLik_SRGV:

Борис ну это совсем не трудно, вот вам простая функция реализующая принцип мартингейла:

В качестве параметров передавайте начальный объем (double lot), и шаг (double x).
Вставляйте метод прямо в OrderSend вместо параметра volume.

Пример вызова функции:


Может, лучше использовать AccountEquity() вместо AccountBalance() ??? Зачем советник, который отправляет в небо линию баланса, спуская при этом вложенные средства ? ИМХО
 
artmedia70:
Может, лучше использовать AccountEquity() вместо AccountBalance() ??? Зачем советник, который отправляет в небо линию баланса, спуская при этом вложенные средства ? ИМХО
Точно,- совсем забыл: ... 3. Не Использовать локи.
 
tara:

Изящное решение, но я бы добавил инструкцию: 1. Не использовать при одновременной торговле на нескольких инструментах. 2. Отключать советник перед выводом средств и на период начисления свопов.


Благодарю.
Эта функция в основном для тестера, так как в реальной торговле, мартин лучше не применять, имхо конечно.

По поводу 1.
Мартин как вы знаете, может очень сильно перегрузить баланс, поэтому использовать на одном счете нескольких советников или одного на разных инструментах использующих систему мартингейла в своей работе, может очень плохо, а главное быстро закончится…  Поэтому дело не в определении убыточности предыдущих сделок, этот блок можно легко модифицировать при желании, дело в самом принципе обращения с любым мартином, ему одному нужны ресурсы баланса по максимуму.

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

Свое отношение к системе мартингейла я высказал в самом начале, поэтому для тестера этой функции более чем достаточно.

 
artmedia70:
 Может, лучше использовать AccountEquity() вместо AccountBalance() ???...

Да нет, не лучше Артём, AccountBalance () возвращает сумма денежных средств на счете без учета открытых позиций, при это не важно в плавающие прибыли или убытке она сейчас находится, в то время как AccountEquity() возвращает баланс с учетом плавающей прибыли или убытка, это что же получится допустим одна позиция ушла в плавоющий убыток, а мартин тут же удваивает лот? как то странно получится по мойму...
Как я уже сказал функцию лучше вызывать когда других открытых позиций нет, а в этот момент AccountEquity() и AccountBalance() возвращают одни и те же цифры.

Зачем советник, который отправляет в небо линию баланса, спуская при этом вложенные средства ?

Как вы это себе представляете? Линия баланса через AccountBalance() считается уже по закрытым позициям, то есть с зафиксированной прибылью или убытком, как при этом он может спускать вложенные средства, в просадке? Тогда причем здесь AccountEquity() если мартин правильно считать с зафиксированных позиций? Взять ту же функцию Кима, она ведь ищет последнюю ЗАКРЫТУЮ позицию в истории.

Зачем советник, который...

Он в любом случае обречен.

 
eugggy:
Кто нибудь знает индикатор, который возвращает несколько последних экстремумов ZigZag?

Зачем вам индикатор? Вот вам функция:

//+------------------------------------------------------------------+
double getZigZag(int ex = 1, int ExtDepth=12, int ExtDeviation=5, int ExtBackstep=3){
   double date;
   int step = 1;
   for(int shift = 0; shift <= Bars-1; shift++){
      date = iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, shift);
      if(date != 0){
         if(step == ex)return(date);else step++;
      }
   }
}
//+------------------------------------------------------------------+

Параметр ех – номер экстремума зигзага, считать надо с права на лево, начиная с 1. Отсальные параметры, стандартные настройки зигзага.

Пример использования функции:
Вернем 3 последних экстремума зигзага.

//+------------------------------------------------------------------+
int start(){
   Alert("ZigZag point #1", getZigZag(1));
   Alert("ZigZag point #2", getZigZag(2));
   Alert("ZigZag point #3", getZigZag(3));
}
//+------------------------------------------------------------------+
 
ToLik_SRGV:

Да нет, не лучше Артём, AccountBalance () возвращает сумма денежных средств на счете без учета открытых позиций, при это не важно в плавающие прибыли или убытке она сейчас находится, в то время как AccountEquity() возвращает баланс с учетом плавающей прибыли или убытка, это что же получится допустим одна позиция ушла в плавоющий убыток, а мартин тут же удваивает лот? как то странно получится по мойму...
Как я уже сказал функцию лучше вызывать когда других открытых позиций нет, а в этот момент AccountEquity() и AccountBalance() возвращают одни и те же цифры.

Как вы это себе представляете? Линия баланса через AccountBalance() считается уже по закрытым позициям, то есть с зафиксированной прибылью или убытком, как при этом он может спускать вложенные средства, в просадке? Тогда причем здесь AccountEquity() если мартин правильно считать с зафиксированных позиций? Взять ту же функцию Кима, она ведь ищет последнюю ЗАКРЫТУЮ позицию в истории.

Он в любом случае обречен.


Согласен, Анатолий... :) Всё это справедливо (по моим скромным познаниям) относительно одного ордера в рынке, ну или уже закрытого в профит, либо в убыток... Закрыли с прибылью - ОК, продолжаем; словили лося - удваиваем лот и с криком "За Сталина!!!" кидаемся на амбразуру... а там уж как повезёт - если гололёд... опять удваиваемся и кричим ещё громче "За Родину...", если повезло - вытираем пот со лба и опускаемся к изначальному лоту...

А если имеем несколько открытых позиций в рынке? Как тут быть? По прибыльным позам работаем с начальным лотом, а по лосям что делать изволите??? Тут всплывает понятие лок с удвоением лота и начинаются пляски с бубнами вокруг лося с локом дабы эквити из просадки вытащить хотя бы в ноль... ИМХО - глупейшее занятие (пройденное мною... :))

Пришел к выводу, что лучше закрывать все позы по эквити в совокупном профите, заданном в настройках, а лучше, чтобы он (этот профит совокупный) был плавающим, так сказать, подстраиваемым к текущему положению дел на рынке... плюс такие же плавающие цели.

Тестирование на достаточно длительных различных временных интервалах истории на пятиминутках за три-четыре года по раздельности и полностью за весь период позволяет сделать вывод, что это не лишено здравомыслия и содержит в себе рациональное зерно... По-крайней мере даёт стабильную прибыль около 60% в месяц (про просадки раз в два - три месяца до размеров эквити/2 я скромно промолчу...:))

То, что мартини лучше пить, а не использовать в торговле - это должен прочувствовать каждый, кто им интересуется, на собственном депо. Сколь ни говори людям, что грабли больно в лоб шибают - пока не проверят - не поверят... И хорошо, если поверят с первого раза... а то ведь начнут ошибки в коде искать, свято веря в святой грааль...

ЗЫ Всё ИМХО.

 
artmedia70:

Согласен, Анатолий... :) Всё это справедливо (по моим скромным познаниям) относительно одного ордера в рынке, ну или уже закрытого в профит, либо в убыток... Закрыли с прибылью - ОК, продолжаем; словили лося - удваиваем лот и с криком "За Сталина!!!" кидаемся на амбразуру... а там уж как повезёт - если гололёд... опять удваиваемся и кричим ещё громче "За Родину...", если повезло - вытираем пот со лба и опускаемся к изначальному лоту...

Пример классического мартина, для него и был написан данный метод.

А если имеем несколько открытых позиций в рынке? Как тут быть? По прибыльным позам работаем с начальным лотом, а по лосям что делать изволите??? Тут всплывает понятие лок с удвоением лота и начинаются пляски с бубнами вокруг лося с локом дабы эквити из просадки вытащить хотя бы в ноль... ИМХО - глупейшее занятие (пройденное мною... :)) 

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

Пришел к выводу, что лучше закрывать все позы по эквити в совокупном профите, заданном в настройках, а лучше, чтобы он (этот профит совокупный) был плавающим, так сказать, подстраиваемым к текущему положению дел на рынке... плюс такие же плавающие цели. 

Как минимум очень не плохая идея, воспринимать форекс, как нечто целое, а не держаться за какую либо отдельно взятую позицию, главное чтобы баланс выдержал данную философию торговли. :)))

То, что мартини лучше пить, а не использовать в торговле - это должен прочувствовать каждый, кто им интересуется, на собственном депо. Сколь ни говори людям, что грабли больно в лоб шибают - пока не проверят - не поверят... И хорошо, если поверят с первого раза... а то ведь начнут ошибки в коде искать, свято веря в святой грааль... 

Опять таки с вами трудно не согласится, лично мне хватило тестера :)))
 
ToLik_SRGV:

Как минимум очень не плохая идея, воспринимать форекс, как нечто целое, а не держаться за какую либо отдельно взятую позицию, главное чтобы баланс выдержал данную философию торговли. :)))

Исходя из многочисленных тестов на различных промежутках тестовых периодов балланс-то как раз бодренько к небу бежит (для инвесторов просто чудо-расчудесное), а вот средства гуляют туда-сюда, порою заставляя призадуматься над ужесточением правил входа в рынок...