[open source] [Советник] "Generic A-TLP"📌

От Sergey5, 23 апреля, 2016 в Лаборатория ProfitFX

#1877




Слушай, я ж не в суд маляву написал. Старик считает, что здесь 6К юзеров, наверное не каждый знает о таких камнях. Я вот не обращал внимания на разницу между ECN и NDD, да и сейчас по твоей немногословности не особо понимаю.


:d не, я писал о 6000+ скачиваний разных модов бота - а скачивания модов это не столько же людей, а в 2-3 раза меньше.

Но если сделаем всё как надо, то и десятки тысяч пользователей Generic со временем наберётся.


Очень надеюсь, что "десятки тысяч пользователей Generic" не появятся.
Иначе торговать будет совсем печально :d (я про ликвидность и всё что с ней связано))

Имхо, все немного не так...

Этот топик (да и наш с Qj проект) попытка создать некий бизнес-процесс, генерирующий всё возрастающую прибыль.

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

Второй этап, с лагом в 2-4 месяца, начнется после получения пользователями первой стабильной версии, лучшей чем начальная.
Пользователи, большинство из которых как-никак трейдеры (!) разной квалификации, наторговав статистику и почуяв прибыль, так или иначе, но начнут делать адекватные замечания и предложения как по доработке бота, так и более оптимальным торгам.
Даже если, как примерно сейчас, ботом будут торговать порядка 3000 человек, предложения по улучшению даже от 1% пользователей - это аж 30 трейдерских идей!!
Вдумайся - 30 достаточно качественных квалифицированных мыслей!!
Такая обратная связь позволит как улучшить разрабатываемого бота, так и, вполне возможно, создать еще 1-2 на базе отдельных идей пользователей.

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

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

Поверь, это вполне реально, если просто продолжать работать.

-----

Что касается беспокоящей тебя ликвидности...
Ты же видишь, что используется множество ДЦ и что торги идут далеко не строго синхронно.
И пары не экзоты, а все же весьма ликвидные мажоры и их кроссы.
Имхо, в моменте по рынку даже на тысячах пользователях по любой паре запрашивается ордеров максимум 1-2 лота в сумме!...
Так и будет.
А это вообще не объемы для торгов в конце Нью-Йорку, на Чикаго...
Ты не о том беспокоишься, мой давний коллега! :)
#1878


1. У меня стоит на всех парах вместо ролловер фильтра, значения в 2 раза больше среднего спреда.


В два раза больше значения max_Spread ?
#1879


Обнаружилась ошибка 4051 в самой новой версии советника 11.93



Подтверждаю! Только что получил такую же ошибку на 11.94 и также не появилась иконка где закрылся ордер (пришлось руками из истории перетягивать).
Цитата


0 00:37:10.548 Generic A-TLP 11.94 GBPCAD.m,M15: 23:37 | SELL: order #596432 Filter output №3. MA rises and a floating profit more 15.0 points.
2 00:37:10.689 Generic A-TLP 11.94 GBPCAD.m,M15: close #596432 sell 0.01 GBPCAD.m at 1.65929 sl: 1.66929 tp: 1.64829 at price 1.65777
0 00:37:10.689 Generic A-TLP 11.94 GBPCAD.m,M15: 23:37 | OrderCloseX: SELL price / cmd / slip / delay = 1.65777 / 1.65777 / 0.0 point / 141 ms, WorkTime = 0 ms
0 00:37:10.689 Generic A-TLP 11.94 GBPCAD.m,M15: GetLastProfit, LastBuyProfit: 0 pips, LastSellProfit: 15 pips
0 00:37:10.689 Generic A-TLP 11.94 GBPCAD.m,M15: 23:37 | OnTick Error №: 4051 - invalid function parameter value

#1880


Цитата

Дальше события развивались так:
02:15:01 - несколько копий бота на ряде пар выдают приказы на открытие по одному рыночному ордеру
02:15:01+- сервер MarketPlacе открывает все запрошенные ордера
02:16:00+- рассинхронизированный сервер МТ4 автономно выдает в клиентский терминал Off Quotes по всем реально уже открытым ордерам
02:18:00+- сервера ДЦ синхронизируются и в клиентский терминал "добавляются" все 3+ минутами ранее открытые MarketPlacе рыночные ордера.

master_255, вот такая история из жизни. Как такое обрабатывать, пока не понимаю.



А какой из этих двух серверов отвечает на запросы об уже открытых ордерах? Есть ли смысл, перед повтором запроса на открытие ордера, запросить инфу об открытых ордерах по текущей паре и если нету - тогда слать повторный запрос на открытие - или это медленно?

я ж выше цитаты четко писал: исполняет ордера сервер MarketPlacе - а инфу в клиентский терминал выдает сервер МТ4.
И переспрашивать сервер МТ4 было бессмысленно - ввиду рассинхронизации с MarketPlacе, сервер мт4 об уже открытых MarketPlacе ордерах ничего не знал.
Переспросить сервер мт4 было можно: сервер мт4 заверил бы, что ордеров нет - а реально они были.
О чём я и написал.
#1881



Обнаружилась ошибка 4051 в самой новой версии советника 11.93



Подтверждаю! Только что получил такую же ошибку на 11.94 и также не появилась иконка где закрылся ордер (пришлось руками из истории перетягивать).
Цитата


0 00:37:10.548 Generic A-TLP 11.94 GBPCAD.m,M15: 23:37 | SELL: order #596432 Filter output №3. MA rises and a floating profit more 15.0 points.
2 00:37:10.689 Generic A-TLP 11.94 GBPCAD.m,M15: close #596432 sell 0.01 GBPCAD.m at 1.65929 sl: 1.66929 tp: 1.64829 at price 1.65777
0 00:37:10.689 Generic A-TLP 11.94 GBPCAD.m,M15: 23:37 | OrderCloseX: SELL price / cmd / slip / delay = 1.65777 / 1.65777 / 0.0 point / 141 ms, WorkTime = 0 ms
0 00:37:10.689 Generic A-TLP 11.94 GBPCAD.m,M15: GetLastProfit, LastBuyProfit: 0 pips, LastSellProfit: 15 pips
0 00:37:10.689 Generic A-TLP 11.94 GBPCAD.m,M15: 23:37 | OnTick Error №: 4051 - invalid function parameter value



у меня на этой же сове пока нет таких ошибок наблюдаю дальше
да тоже обнаружил ошибку выдает
2016.11.07 21:00:02.413 Generic A-TLP 11.94 EURCAD,M15: Error iVolumeX requested history data is in update state
2016.11.07 21:24:31.241 Generic A-TLP 11.94 GBPCAD,M15: 23:24 | OnTick Error №: 4051 - invalid function parameter value

Изменено 8 ноября, 2016 пользователем nikus444

#1882

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

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

Изменено 8 ноября, 2016 пользователем pegaskrs

#1883
nikus444, ошибка в iVolumeX можно сказать запланированная, если советник за 10 попыток не смог получить объем свечи D1, то перестает делать попытки и выводит эту информацию.

robustby, 4051 пока просто не понимаю где у вас возникает. И стрелки советник не рисует, вы имели ввиду текст по какому фильтру был выход?

pegaskrs, ты видимо код давно не смотрел, после получения тикета от OrderSelect, получение информации из него поставлено в цикл с задержкой, а не один запрос через 3 секунды как раньше, и если попыток не хватит информация об ошибке будет из функции OpenTrade, а не OnTick.
#1884

Обсуждали ли возможность фиксирования прибыли и закрытия половины позиции?

Update: Наверное, уточню. Например, минимальный TP = 10 и этот минимум взят. В этом случае закрываем половину позиции, а вторую переводим в БУ

Изменено 8 ноября, 2016 пользователем isnull

#1885


Скрипт вывода некоторой статистики файла "BrokerStat.csv" (из версии 11.93 и выше) для тех кому лень в excel загонять.

Коллеги программисты есть ли какой то способ читать файл с конца, чтобы когда файл разбухнет читать только строки до определенной даты?


Спасибо за скрипт, но там нет самого главного - общего среднего проскальзывания, и ещё надо добавить проценты отдельно для положительного и отрицательного проскальзываний среди общего числа сделок.
#1886
master_255
ошибка не обязательно в OnTick ,она может возникнуть в любой функции
глянул код ошибка обнуляется в двух местах ,а если подумать то практически в одном месте

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




#1887


robustby, 4051 пока просто не понимаю где у вас возникает. И стрелки советник не рисует, вы имели ввиду текст по какому фильтру был выход?



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

#1888
long iVolumeX(string symbol, ENUM_TIMEFRAMES tf, int sh){
int err=0;
bool exit_loop = false;
int retry = 10;
int cnt1 = 0;
long res = 0;
while(!exit_loop && cnt1 res = iVolume(symbol,tf,sh);
if(res==0){
err = GetLastError();
if(err==4066){
Sleep(1000);
cnt1++;
}else
exit_loop=true;
}else
exit_loop=true;
}
if(err != ERR_NO_ERROR && err != ERR_NO_RESULT) Print("Error ",__FUNCTION__," ",ErrorDescription(err));

return res;
}

err должно обнуляться внутри цикла. На первой попытке будет res=0, и err = GetLastError, на второй попытке res - не 0, а err - осталось предыдущее значение.
#1889
pegaskrs, вызов GetLastError() тоже обнуляет последнюю ошибку. Про ошибку при отсутствии комментария спасибо.

robustby, терминал mt4 только в тестере закрытые ордера отображает, вам нужен индикатор, типа VisualOrders

machine, точно, спасибо.
#1890



robustby, терминал mt4 только в тестере закрытые ордера отображает, вам нужен индикатор, типа VisualOrders



Он хотел сказать, что в предыдущей версии сова закрытые ордера отображались без дополнительных индикаторов, а сейчас нет. Было действительно очень удобно...
#1891
Цитата


robustby, терминал mt4 только в тестере закрытые ордера отображает, вам нужен индикатор, типа VisualOrders


Он хотел сказать, что в предыдущей версии сова закрытые ордера отображались без дополнительных индикаторов, а сейчас нет. Было действительно очень удобно...


Еще как было удобно! Подтверждаю что на всех версиях до 11.93 (в том числе и Азия и Дженерик 9 версий) при закрытии ордера это отображается на графике:

А теперь это почему-то исчезло, что крайне неудобно - график очень теряет в информативности - непонятно где советник вышел из сделки - анализировать сделки становится намного сложнее - надо лезть в историю, смотреть там во сколько советник закрыл сделку и по какой цене, а когда сделок много так это геморрой конкретный становится, а если анализировать торговлю за несколько недель/месяцев, листая график по паре, так вообще становится невозможным делом это, а ведь удобно анализовать, когда подбираются например сеты для новой пары из нескольких вариантов - в первую очередь сравниваю графики визуально - где советник вошел и где вышел, с новыми версиями это становится нереально делать, думаю многие график так или иначе анализируют и многим это будет неудобно в самой новой версии сова. Очень бы хотелось чтоб это вернулось все таки в новой версии... Сам версию 11.94 пока не успел поставить, потому об ошибках в ней не отписался, но у товарищей смотрю тоже самое начало вываливаться с ошибками что и у меня на 11.93. Пока версия 11.92, на мой взгляд, самая стабильная - да там нет интересных фич 11.93-11.94 версий с проскальзываниями, но зато советник все правильно рисует и нет ошибок. Очень надеюсь что master_255 в новом релизе исправит найденные недочеты

Изменено 8 ноября, 2016 пользователем FERRARI2009

#1892

Версия 11.94.1
[list type=decimal]

  • Игнорирование ошибки 4051 при отсутствии комментария

  • Исправлено забывание предыдущей ошибки в функциях iOpenX, iVolumeX

  • Возврат отображения стрелок закрытия ордеров



  • Плюс доработки в скрипте вывода информации из "BrokerStat.csv"


    Generic_A-TLP_11.94.1.mq4359 скач.
    BrokerStat_Generic_A-TLP.mq4183 скач.
    Снимок.PNG

    #1893

    Кто-нибудь проверял в 12-й версии фильтр по максимально разрешённому объему для каждой валюты?


    Фильтр не будет корректно работать, если используется АвтоММ, т.е. лоты для входа разных пар будут отличаться.
    Просто сделать простую проверку на наличие текущих пар с данной валюте в рынке в нужном направлении.
    Вообще не знаю, зачем люди с этим парятся. У меня 15 графиков открыто и 2 версии советника торгует без всяких фильтров. Только 1 раз заметил, как после скачка по Евро вынесло сразу 2 пары в минус. Тут нужно не входы ограничивать, а придумывать, как резать СЛ.



    Добавлено: 08-11-2016 21:58:26


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

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

    Изменено 9 ноября, 2016 пользователем machine

    #1894


    Версия 11.94.1
    [list type=decimal]

  • Игнорирование ошибки 4051 при отсутствии комментария

  • Исправлено забывание предыдущей ошибки в функциях iOpenX, iVolumeX

  • Возврат отображения стрелок закрытия ордеров



  • Плюс доработки в скрипте вывода информации из "BrokerStat.csv"

    В скрипте математика не сходится - среднее проскальзывание против нас 1.1 пипса, и среднее общее тоже 1.1, при том, что есть и положительные проскальзывания, следовательно среднее общее явно должно быть меньше 1.1 !!! И было бы нагляднее, если перед средним общим стоял знак + или - . Если плюс - то в нашу сторону, минус - нам в убыток.
    #1895

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

    #1896

    Версия 11.94

    проблема с MDR так и присутствует!
    сеты оригинал +комбинированные с форума:
    GBPUSD_MDR=35 при подсчёте=77пп, ордер был открыт!
    GBPCAD_MDR=85 при подсчёте=195пп, ордер был открыт!
    EURAUD_MDR=85 при подсчёте=201пп, ордер был открыт!

    В логах типичная инфа:

    Цитата


    2016.11.08 22:22:31.990 Generic A-TLP 11.94 GBPCAD,M15: open #25486344 buy 0.08 GBPCAD at 1.64906 ok
    2016.11.08 22:22:34.345 Generic A-TLP 11.94 GBPCAD,M15: modify #25486344 buy 0.08 GBPCAD at 1.64906 sl: 1.63906 tp: 1.66006 ok
    2016.11.08 22:22:31.990 Generic A-TLP 11.94 GBPCAD,M15: 22:22 | OpenTrade: BUY price / cmd / slip / delay = 1.64906 / 1.64916 / -1.0 point / 1264 ms, channel price / bid = 1.64902 / 1.64898, WorkTime = 0 ms
    2016.11.08 22:22:31.990 Generic A-TLP 11.94 GBPCAD,M15: open #25486344 buy 0.08 GBPCAD at 1.64906 ok



    К примеру у версии 12.37.2
    на GBPUSD/GBPCAD был запрет на открытия, НО не был на EURAUD

    Изменено 9 ноября, 2016 пользователем Robby

    #1897


    GBPUSD_MDR=35 при подсчёте=77пп, ордер был открыт!
    GBPCAD_MDR=85 при подсчёте=195пп, ордер был открыт!
    EURAUD_MDR=85 при подсчёте=201пп, ордер был открыт!

    Откуда докуда считалось?
    GBPCAD, ордер открыт по цене 1.64906, открытие дня 1.65611, диапазон - 70.5
    #1898


    Откуда докуда считалось?
    GBPCAD, ордер открыт по цене 1.64906, открытие дня 1.65611, диапазон - 70.5


    считал по дневной свече(Hi-Low) тут, я уже сам не могу понять, что и как считается...если:
    у версии 12.37.2 был запрет:
    2016.11.08 22:21:19.781	Generic A-TLP v.12.37.2_RUS GBPCAD,M15: GBPCAD| Дневной диапазон движения цены: (228.4 пунктов) ,больше MaxDailyRange:85.0Ордер BUY не был открыт.
    #1899

    Проверка MDR после нуля часов включена, и прочие MDRFromHiLo?
    Там немного некорректно считает в этой версии, до 0 часов тоже берёт с предыдущего дня (если включена проверка MDR после нуля).

    Изменено 9 ноября, 2016 пользователем machine

    #1900


    Проверка MDR после нуля часов включена, и прочие MDRFromHiLo?
    Там немного некорректно считает в этой версии, до 0 часов тоже берёт с предыдущего дня (если включена проверка MDR после нуля).


    да, режимы включены:

    MDRFromHiLo = true;
    CheckMDRAfter0 = true;


    Вот что интересно, версия 11.94 наплодила около 9 пар а 12.37.2 только 3 пары по тех остальных срабатывал фильтр MDR

    П.С. брокер TickMill
    #1901



    Проверка MDR после нуля часов включена, и прочие MDRFromHiLo?
    Там немного некорректно считает в этой версии, до 0 часов тоже берёт с предыдущего дня (если включена проверка MDR после нуля).


    да, режимы включены:

    MDRFromHiLo = true;
    CheckMDRAfter0 = true;


    Вот что интересно, версия 11.94 наплодила около 9 пар а 12.37.2 только 3 пары по тех остальных срабатывал фильтр MDR

    П.С. брокер TickMill

    Тоже заметил вчера что версия 11,94,1 сделки строчила как из пулемета хз все ли по правилам открывала.

    Для публикации сообщений создайте учётную запись или авторизуйтесь

    Перейти к списку тем
    Форум · 2.0.20260627.0025