Перейти к содержимому

Theme© by Fisana
 

Фотография
* * * * * 4 Голосов

Советник PuriaM2


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 593

#181 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 02 April 2011 - 15:46

Olej, так у вас есть возможность добавить закрытие ордеров по закрытию бара ниже трех МА для БАЙ, и по закрытию бара выше 3х МА для СЕЛЛ?


Почти сделал ... НО!!!

Но тут обнаружил, что вы диаметрально противоречите сами себе в своём первом сообщении, где предлагали это сделать:

если понятно о чем я говорю, предлагаю ввести следующее изменение с целью уменьшения убытка.:
если открыта позиция SELL, а цена закрылась свечой НИЖЕ всех 3х МА, то позицию закрываем не дожидаясь противоположного сигнала.
если открыта позиция BUY, а цена закрылась свечой ВЫШЕ всех 3х МА, то позицию закрываем не дожидаясь противоположного сигнала.
ориентировочно, это сократит убытки примерно в 2 раза у тех позиций, которые определенно закрываются с "минусом"


Так всё-так выше или ниже, и для BUY или для SELL ??? :acute:
  • Good_day и marker1 это нравится

 
 

#182 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 02 April 2011 - 16:04

Так всё-так выше или ниже, и для BUY или для SELL ??? :acute:


Сделал пока как я это сам понимаю, по логике:
- если цена уходит ниже всех 3-х мувингов, то закрываются принудительно все BUY открытые ордера;
- если цена уходит выше всех 3-х мувингов, то закрываются принудительно все SELL открытые ордера;
- для того, чтобы всё это так происходило нужно входной параметр (новый) ForseClose поставить в true (по дефаулту он стоит false - я подозреваю, что такой метод только ухудшит результативность)...

Проверяйте! :yahoo:

Я прогнал на тех де параметрах, что и показанный раньше график, и получил:
1. старый (ForseClose=false)
- чист.прибыль - 1263.44
- абс.просадка - 136.53
2. новый (ForseClose=true)
- чист.прибыль - 476.20
- абс.просадка - 93.00
Число сделок в обоих случаях сохраняется (что очень важно!) - 21.
Но это ни о чём не говорит - это частный пристрелочный прогон на очень коротком интервале...

Проверяйте! :yahoo:
Это вы просили это изменение - у меня нет ни сил, ни времени, ни желания ;) его тщательно выверять! Выверять - вам! Хорошо видно, что теперь между открытием очередного ордера, и закрытием ему встречных предыдущих - появился разрыв во времени.

P.S. предыдущую картинку (старую) - слева, я повторил.

Прикрепленные изображения

  • p9_1.gif
  • p9_2.gif

Прикрепленные файлы


  • Good_day и marker1 это нравится

#183 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 02 April 2011 - 16:11

Ещё думаю параметры MACD нужно бы вынести на оптимизацию, так как они тоже не аксиома...


Сделал.

Оказалось совершенно бессмысленно!

Задвинул в-зад ;)
  • Good_day и marker1 это нравится

#184 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 02 April 2011 - 16:38

Доброй, эту ошибку можно обойти, дописав часть кода:)) Бот будет везде работать:)


Последнее исправление (те, что просили - это кроме того, что у меня в самого в "пакете" назрело дополнить) - это: НДД (как вы их назвали) счета...
начинаю дописывать ;)...

Было (раньше) предложено 2 варианта решения, учитывая, что советник может напороться на НДД счёт, но наперёд он не знает, какого типа счёт у ДЦ, и это должно работать на любых счетах... Итак:

1.
- открывается всегда ордер OrderSend() с SL=0 & TP=0 ...
- получив от него ticket (успешное открытие) - для него делает тут же OrderSelect()...
- и по выбранному ордеру делается OrderModify() с нужными значениями SL & TP

2.
- открываем сначала всё как раньше было: OrderSend() с нужными SL & TP ...
- если в ответ получаем ошибку 130 ( ERR_INVALID_STOPS - "Неправаильные стопы") то ... тут тоже нужно бы разобраться - может они и правда неправильные, разбег не превышает стоп-левел? - но с большой вероятностью это НДД счёт, и тогда уже для него поступаем как в случ.1.

Зачем мудрить в случае 2, и зачем такой сложный кайф?
А затем, что нормальный счёт нормального ДЦ (а это более частая потребность!) в случ. 1 будет получать в 2 раза чаще (больше) ордерные операции, и может просто "залупиться" ... да и при раздельной посылке цены и стопов - куда больше вероятность нарваться на реквоты.

Но пока посмотрю, что можно сделать по случ.1.
  • Good_day и marker1 это нравится

#185 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 02 April 2011 - 16:50

Вы версию которю я выложил тестили? Там при тесте ошибку какую то пишет в журнале, задал вопрос уже на форекссистемсе....


Не тестил :beach:

Но только сейчас руки дошли : посмотрел код ... без всяких тестов:

- подправили там ... "на коленке" и "на соплях"...
- работать оно должно, но до поры до времени ... пока не вылезут ошибки...
- если бы они не вылезали, то это бы было изрядно странно :thumbsup:
  • Good_day и marker1 это нравится

#186 bda2009

bda2009

    Первый выстрел

  • Частый гость
  • PipPip
  • 5 сообщений

Отправлено 02 April 2011 - 17:05

Добрый день! Я не силен в mqlИзображение (только пытаюсь понять), но в 8 и 9 версии отсутствует Изображение следующий участок кода (в отличии от 7 версии) . Как я понимаю касается ММ Райана Джонса:


double Rajan_Jones( double Ratio, double Delta, double HighLim ) {

if( Ratio < 1.0 ) return( 1.0 ); // только увеличение лота!
double Curr = ( Ratio - 1.0 ) / Delta; // число "дельт" превышения депозита
static double Mult[] = {
0, 1, 3, 6, 10, // Mult[i] = Mult[i-1]+i
15, 21, 28, 36, 45,
55, 66, 78, 91, 105,
120, 136, 153, 171, 190
};
int i, n = ArraySize( Mult );
double Limit = 1.0;
for( i = 1; i < HighLim + 1; i++ ) {
if( Curr < Limit ) break;
Limit += ( i + 1 ); // 1, 3, 6, 10... X[i]=X[i-1]+i
// if( Curr < Mult[ i ] ) break;
}
return ( 1.0 + ( i - 1 ) );
}
это нормально, т.е он лишний?

Сообщение отредактировал bda2009: 02 April 2011 - 17:07


#187 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 02 April 2011 - 17:09

в 8 и 9 версии отсутствует следующий участок кода (в отличии от 7 версии) . Как я понимаю касается ММ Райана Джонса:
...
это нормально, т.е он лишний?


Он не отсутствует ... и не лишний ;)
Теперь он просто в другом месте.

Он просто а). перенесен в библиотеку mmlib.mq4 (это и есть MM - они все туда отправятся со временем) + б). он сделано ... более универсальным, без ограничения на число шагов увеличения (для чего раньше массивы использовались).
  • Good_day и marker1 это нравится

#188 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 02 April 2011 - 19:18

Фу-х...
Сделал ... (добавил) работу с НДД счетами, по спос.1 : открытие с нулевыми SL/TP + сразу же модификация ордера с нужными значениями SL/TP.

Но пришлось помудохаться... :wall:- очень сбило то, что я "подсмотрел" тот код, который по-быстренькому модифицированный показывали раньше... Теперь понятно ещё несколько дополнительных причин-резонов, почему "так как там" ;) - делать нельзя!

В любом случае - можно приступать к тестированию + замечаниям.

P.S. очень трудно было получить в точности тот же результат, что в версии 7 (от которой на сегодня началась пляска).
Картинка прилагаемая - это не повтор того, что показано раньше, это свеже полученная картинка.
Но самое убедительное, это цифры из закладки "Отчёт":
- число сделок - 21
- чист. прибыль - 1263.44
- абс. просадка - 136.53
Это в точности, до 2-х десятичных знаков после запятой, совпадает с результатом за а). тот же период + б). та же пара и тайм-фрейм + в). тот же дпозит + г). тот же набор параметров (файл параметров я приводил чуть раньше) - что и по версии 7.

Прикрепленные изображения

  • p9_3.gif

Прикрепленные файлы



#189 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 02 April 2011 - 19:36

В любом случае - можно приступать к тестированию + замечаниям.


Всё!

В этом "пакете" изменений новые пожелания к изменениям - не принимаются :beach:
... дальше отработаю только ММ-методы, которые давно хотелось покопать + новый добавленный метод ММ на обучаемой нейро-сети прописать...

А теперь ... лирическое отступление : об изменениях и трудоёмкости...
Здесь кто-то раньше писал: "... там на 1/2 часа работы...".
По меткам времени сообщений, которые я вписывал сюда в тему, заключаю, что начал я весь этот "пакет" изменений что-то около 12:40, а закончил - около 18:18, т.е. около 6-ти часов не отходя от кассы...

Но это кажущееся "мало", потому что выставленный вам советник - это сурогат! Потому как все предыдущие результаты его тестирования и вылизывания, после внесения изменений, должны считаться недействительными, и все тесты и испытания должны повторяться заново с начала!
А за вот той редакцией 7 - было мал-мало 3-4-5 мес. тестирования, иногда по 10-ти часов в день. А теперь такой же тщательности испытания нужно провести по-новой.

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

#190 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 02 April 2011 - 19:38

Ну-у-у-у-у-у-у ... пацаны?

За 20 минут после выпечки советника - 4 скачивания... даже уже 5 ;)

Ну!? А кто мне будет в репутацию плюсы ставить? :yahoo::bow::rant:

#191 Olej

Olej

    Почётный житель форума

  • Свой человек
  • PipPipPipPipPipPipPipPipPipPip
  • 411 сообщений

Отправлено 02 April 2011 - 23:55

Было (раньше) предложено 2 варианта решения, учитывая, что советник может напороться на НДД счёт, но наперёд он не знает, какого типа счёт у ДЦ, и это должно работать на любых счетах... Итак:

1.
- открывается всегда ордер OrderSend() с SL=0 & TP=0 ...
- получив от него ticket (успешное открытие) - для него делает тут же OrderSelect()...
- и по выбранному ордеру делается OrderModify() с нужными значениями SL & TP


В этом способе - всегда открывать ордера в 2 приёма - вылезают всё новые гадости при детальном анализе:
- если открытие со SL=0 & TP=0 благополучно свершилось...
- а на 2-м шаге модификации ордера возвратилась ошибка (от сервера!) ... в результате реквот или ещё чего...
- что делать то будем? - остаётся висеть "голый" ордер без стопов в нарушение всех правил выбранной ТС... :wub:
  • subinandrei, Good_day и marker1 это нравится

#192 Dyzzy

Dyzzy

    Выпустил первую очередь

  • Пользователи
  • PipPipPip
  • 21 сообщений

Отправлено 03 April 2011 - 00:56

Доброго времени Всем ! и особо Олегу !!
Огромное Спасибо за труды !! и учтенные пожелания !! :good:
Протестил новую функцию ForseClose на коротком периоде с 28.02.11 по 01.04.11 (*.set стаит вами предложенный) - так как именно март меня чуть не выбил из колеи :yikes: с такими бешеными новостями влияющие на движение валют, и я бы сказал что достаточно хорошо на тесте она себя кажит, посмотрим что будет в реальном режиме. Очень отличная функция в сочитании с БУ для счетов с депо до 100 вечно зеленых, (мое мнение)
1) выключен ForseClose -uerusd-m15-false.gif
2) включен ForseClose -uerusd-m15-true.gif

#193 marker1

marker1

    В бою

  • Свой человек
  • PipPipPipPipPipPipPip
  • 152 сообщений

Отправлено 03 April 2011 - 09:38

Что за херня со с движком этого форума!!! - ни добавить ни поправить!...

Доблестные администраторы с модераторами - делайте что-нибудь! :acute:



Я обманул этот форум, так как сам ничего прикрепить не мог: нашел выход, когда пишешь расширенное сообщение, то форум сразу не дает ничего прикрепить, я сделал следующим образом, пишешь сообщение, отправляешь, потом нажимаешь "изменить" и уже прикрепляешь и все ок:))))))))

#194 marker1

marker1

    В бою

  • Свой человек
  • PipPipPipPipPipPipPip
  • 152 сообщений

Отправлено 03 April 2011 - 09:57

В этом способе - всегда открывать ордера в 2 приёма - вылезают всё новые гадости при детальном анализе:
- если открытие со SL=0 & TP=0 благополучно свершилось...
- а на 2-м шаге модификации ордера возвратилась ошибка (от сервера!) ... в результате реквот или ещё чего...
- что делать то будем? - остаётся висеть "голый" ордер без стопов в нарушение всех правил выбранной ТС... :wub:



Я переписывался еще с одним программистом, когда просил пределать мне советника под ндд, так вот, один вариант вы видели. В нем как мне пояснили вот переписка (там немного почитайте) с 64 поста _http://forexsystems....-k-puria-4.html думаю вам будет полезно как программисту, опыт все ж таки реализации таких проблем. Так вот, в том коде который я выкладывал и который вы смотрели, там модификация ордеров идет на КАЖДОМ тике! "У этой модификации (которую вы Олег видели) изначально было одно преимущество перед моей версией - она ставит стопы гарантировано, не на первом тике так на втором и т.д." - это он в 71 посте написал, так же он выложил в 64 посте свой вариант, который как бы "не занудствует".
Теперь еще и ваша версия, я совсем запутался какого бота брать, хотя вроде как логика не нарушена ни в одном из них.
Еще одна фишка, ту версию которую я выкладывал там при тесте выходит в журнале ошибка "1", переводится как "Нет ошибки, но результат неизвестен" - это я взял отсюда _http://www.stop-lossam.net/publ/mysli_o_forekse/1318-kody-oshibok-pri-testirovanii-sovetnika.html Следовательно, тот бот который я выкладывал работает верно, я надеюсь:))

#195 marker1

marker1

    В бою

  • Свой человек
  • PipPipPipPipPipPipPip
  • 152 сообщений

Отправлено 03 April 2011 - 09:59

Теперь вопрос, главный: какую версию для ндд счета мне выбрать??



Copyright © 2024 Your Company Name