Как реализуется запрет торговли экспертами со стороны брокера, способы обхода? Есть ли автокликеры?

 

Есть идея 1) разработать совместно с деловым партнером (его стратегия тех. анализа, мое программирование) торгового робота/эксперта по бинарным опционам (БО) на платформе MetaTrader4. Сейчас на стадии доработки (т. е. торгует, но надо дописать критерии, чтобы повысить процент выигрышных сделок), 2) а затем запустить этот эксперт в т. ч. торговать на одном конкурсном счете (пока конкурс не стартовал, но до начала надеюсь, успеем) для саморекламы.

Проблема: у брокера только для конкурсного счета запрещена работа экспертов (хотя для собственной разработки эксперта мне лично считать это нарушением трудно); в принципе запрос "if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))" даст нежеланный для меня результат. Проверить опять-таки не реально сейчас, т. к. конкурс не стартовал, интересно мнение тех, кто сталкивался, как вообще реализован этот запрет? В принципе не проблема прописать в коде интервал между операциями не менее минуты, и случайную паузу от 2 до 15 секунд сделать, т. к. сделки по БО открываются в момент возникновения новой свечи, а также MagicNumber=0 поставить, вопрос в том, а поможет ли это? Или все-таки придется запускать 2 терминала для конкурсного и неконкурсного счета, при этом смешно, конечно, будет тупо дублировать сделки своими ручками.

Есть ли какие-либо работающие автокликеры для такого случая или др. пути обхода? Нужно в случае автокликера открывать в др. терминале MetaTrader4 по стандартной кнопке "новый ордер" ордер, где поле ввода "комментарий" будет заполнено нужным текстом, а также само собой выбирать символ и объем при рыночном исполнении.

P.S. С брокерами, у которых для неконкурсных счетов запрещена торговля экспертами, я не сталкивался, т. к. зачем они мне нужны

 

 
Alexander Belozerov:

Есть идея 1) разработать совместно с деловым партнером (его стратегия тех. анализа, мое программирование) торгового робота/эксперта по бинарным опционам (БО) на платформе MetaTrader4. Сейчас на стадии доработки (т. е. торгует, но надо дописать критерии, чтобы повысить процент выигрышных сделок), 2) а затем запустить этот эксперт в т. ч. торговать на одном конкурсном счете (пока конкурс не стартовал, но до начала надеюсь, успеем) для саморекламы.

Проблема: у брокера только для конкурсного счета запрещена работа экспертов (хотя для собственной разработки эксперта мне лично считать это нарушением трудно); в принципе запрос "if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))" даст нежеланный для меня результат. Проверить опять-таки не реально сейчас, т. к. конкурс не стартовал, интересно мнение тех, кто сталкивался, как вообще реализован этот запрет? В принципе не проблема прописать в коде интервал между операциями не менее минуты, и случайную паузу от 2 до 15 секунд сделать, т. к. сделки по БО открываются в момент возникновения новой свечи, а также MagicNumber=0 поставить, вопрос в том, а поможет ли это? Или все-таки придется запускать 2 терминала для конкурсного и неконкурсного счета, при этом смешно, конечно, будет тупо дублировать сделки своими ручками.

Есть ли какие-либо работающие автокликеры для такого случая или др. пути обхода? Нужно в случае автокликера открывать в др. терминале MetaTrader4 по стандартной кнопке "новый ордер" ордер, где поле ввода "комментарий" будет заполнено нужным текстом, а также само собой выбирать символ и объем при рыночном исполнении.

P.S. С брокерами, у которых для неконкурсных счетов запрещена торговля экспертами, я не сталкивался, т. к. зачем они мне нужны

 

если есть желание - можем поработаь по автокликеру, бесплатных нет нигде, нужно кодить самим, у меня есть опыт под мт5. В личку, если что.
 
Maxim Dmitrievsky:
если есть желание - можем поработаь по автокликеру, бесплатных нет нигде, нужно кодить самим, у меня есть опыт под мт5. В личку, если что.
Понятно, благодарю за ответ :-) Заморочиться созданием автокликера такого я, конечно, могу, но пока вопрос успеть до начала конкурса, а из Вашего ответа я понял, что шансов успеть мало. Если в будущем созреет желание реализовать автокликер для БО на web-платформах, вероятно, я вспомню про Ваше предложение, но пока проектов хватает и без этого, если честно. Увидим в общем ;-)
 
Alexander Belozerov:
Понятно, благодарю за ответ :-) Заморочиться созданием автокликера такого я, конечно, могу, но пока вопрос успеть до начала конкурса, а из Вашего ответа я понял, что шансов успеть мало. Если в будущем созреет желание реализовать автокликер для БО на web-платформах, вероятно, я вспомню про Ваше предложение, но пока проектов хватает и без этого, если честно. Увидим в общем ;-)

Проще найти конкурс, где автоторговля разрешена и не заморачиваться.

А лучше вообще не заморачиваться с конкурсами. Халявы нет. 

 
Vitalie Postolache:

Проще найти конкурс, где автоторговля разрешена и не заморачиваться.

А лучше вообще не заморачиваться с конкурсами. Халявы нет. 

Есть торгую вывожу )) конечно не то что было 2007-2010 годах, но даренному коню в зубы не смотрят. 
 
Vitalie Postolache:

Проще найти конкурс, где автоторговля разрешена и не заморачиваться.

А лучше вообще не заморачиваться с конкурсами. Халявы нет. 

Да я не спорю, что подводные камни есть, тут цель скорее самореклама, но это отдельная тема всё.

 

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

Т. е. делаю реализацию:

if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
{
/*работает автокликер*/
}
else OrderSend(/*как обычно*/);

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

 
Alexander Belozerov:

Да я не спорю, что подводные камни есть, тут цель скорее самореклама, но это отдельная тема всё.

 

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

Т. е. делаю реализацию:

if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
{
/*работает автокликер*/
}
else OrderSend(/*как обычно*/);

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

Советников брокер не видит, он видит, как выставлены ордера через OrderSend, руками или сов.
 
Alexey Volchanskiy:
Советников брокер не видит, он видит, как выставлены ордера через OrderSend, руками или сов.

OK, благодарю за ответ, а то я решил спросить, они мне заявили, что советники категорически нельзя использовать совсем никак xD

В общем реализация собственного автокликера, если кому пригодится у меня будет вот такая:

1. В файле MQ4

#import "MT4-AB-AddCLRLib.dll"         //имя моей DLL
   void SendKeysDLL(string sCommand);
   void GetMT4ForegroundWindow();
#import

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Далее перед вызовом функции OrderSend:
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

   if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
   {
      GetMT4ForegroundWindow();
      SendKeysDLL("{F9}");                                                          //Press Button "New Order"
      Sleep(250);
      GetMT4ForegroundWindow();
      SendKeysDLL("{TAB}");                                                         //GoTo Volume
      SendKeysDLL(DoubleToString(GetOrderVolume(), 2));                             //Edit Volume
      SendKeysDLL("{TAB}");                                                         //GoTo SL
      SendKeysDLL("{TAB}");                                                         //GoTo TP
      SendKeysDLL("{TAB}");                                                         //GoTo Comment
      SendKeysDLL(GetComment());                                                    //Edit Comment
      SendKeysDLL("{TAB}");                                                         //GoTo Type
      SendKeysDLL("{TAB}");                                                         //GoTo Sell Button
      if(iOrderType==OP_BUY)
         SendKeysDLL("{TAB}");                                                      //GoTo Buy Button
      SendKeysDLL(" ");                                                             //Press Sell or Buy Button
      SendKeysDLL("%{F4}");                                                         //Close "New Order" Window
      return 1;
   }
   else
   {
      //реализация функции OrderSend как обычно
   }

 2. В файле MT4-AB-AddCLRLib.cpp, где MT4-AB-AddCLRLib - имя моей DLL

#include "stdafx.h"

#include <stdio.h>
#include <Tchar.h>

#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
#using <System.dll>

using namespace System;
using namespace System::Runtime::InteropServices;
using namespace System::Drawing;
using namespace System::Windows::Forms;

HWND hWndForWork;

extern "C" __declspec(dllexport) void __stdcall SendKeysDLL(wchar_t cCommand[])
{
        SetForegroundWindow(hWndForWork);
        SendKeys::SendWait(gcnew String(cCommand));
}

extern "C" __declspec(dllexport) void __stdcall GetMT4ForegroundWindow()
{
        hWndForWork=GetForegroundWindow();
}

Для создания DLL можно взять за основу статью https://www.mql5.com/ru/articles/18, но в свойствах проекта следует включить поддержу среды CLR (см. рис.). В моем случае использовалась MS Visual Studio 2008, т. к. для своих целей не вижу смысла что-то более тяжеловесное вроде Visual Studio 2013 и новее ставить. Не спорю, конечно, что пример автокликера не идеальный, но для поставленной в теме цели вполне сгодится, особенно при запуске в виртуальной машине или на отдельном компьютере с минимумом софта.

 Включите CLR

 
Alexander Belozerov:

OK, благодарю за ответ, а то я решил спросить, они мне заявили, что советники категорически нельзя использовать совсем никак xD

В общем реализация собственного автокликера, если кому пригодится у меня будет вот такая:


Попробуйте пакет AutoIT, там для кликера все реализовано.
Причина обращения: