вопросы о советнике который должен имитировать ручную торговлю в конкурсах - страница 6

 
SanAlex #:

Не плохо! мой способ так себе(минус, что компом нельзя пользоваться), но может - через МТ получать сигнал, а в другой программе например в Quik выполнять действие, какое не будь.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Мой способ 

1. создаю .vbs  команда на кнопку 

 

2. Записываю сценарий выполнения 

3. В Индикаторе подаётся Сигнал на .vbs файл(комбинация кнопок)

 Для каждой пары - отдельный Индикатор.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Просто - любой может организовать. Важно что очень просто.

Решил задачу - пользоваться компом, можно без проблем. Команда из Индикатора подаёт сигнал и переключает рабочий стол. Мне останется подождать и переключится опять на 2 рабочий стол.

Снимок экрана 2022-01-12 220116

 
SanAlex #:

Лучше конечно все действия прописать - .vbs файле   - координаты и все остальное, без сторонних программок.

 ( С Русскими буквами - что то, не хочет писать ) 

\\\\\\\\\\\\\\\\\\\\\

меняю язык 


Вот то же самое на MQL:

#define _WIN64  // Only for a 64-bit terminal!

#include <ComObject.mqh>

void OnStart()
{
        HRESULT result = CoInitialize( 0 );
        if( result == S_OK ){
                ComObject WshShell( "WScript.Shell" );
                WshShell.Function( "Run", Variant( "notepad.exe" ), Variant( 9 ) );

                Sleep( 500 );

                WshShell.Function( "SendKeys", Variant( "+%" ) );  // Переключение языка  ALT + SHIFT
                WshShell.Function( "SendKeys", Variant( "VJ;YJ DC`" ) );
                WshShell.Function( "SendKeys", Variant( "+%" ) );  // Переключение языка  ALT + SHIFT
                WshShell.Function( "SendKeys", Variant( " .VBS " ) );
                WshShell.Function( "SendKeys", Variant( "+%" ) );  // Переключение языка  ALT + SHIFT
                WshShell.Function( "SendKeys", Variant( "GHJGBCFNM - RJVFYLS JN RJV,BYFWBB RKFDBI/" ) );
                WshShell.Function( "SendKeys", Variant( "{ENTER}" ) );

                WshShell.Function( "SendKeys", Variant( "{F5}" ) );

                CoUninitialize();
        }
}
 
Koldun Zloy #:

Вот то же самое на MQL:

Огромное Спасибо! Буду значить, изучать дальше.

 
Koldun Zloy #:

Вот то же самое на MQL:

не, не очень. много файлов. -запутаться можно.

этот способ безопасен, ведь мы сами ведём путь . И очень прост в использовании.

//+------------------------------------------------------------------+
//|                                                     SendKeys.mq5 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//---- импорт функции из внешней DLL
#import "shell32.dll"
int ShellExecuteW(int hwnd,string lpOperation,string lpFile,string lpParameters,string lpDirectory,int nShowCmd);
#import
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   ShellExecuteW(NULL,NULL,"D:\\SendKeys\\SendKeys Left.vbs",NULL,NULL,1);
  }
//+------------------------------------------------------------------+

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

И не лазим в папки  MQL . Всё работает в автономном режиме не нарушая файлы и папки   MQL

 
SanAlex #:

не, не очень. много файлов. -запутаться можно.

этот способ безопасен, ведь мы сами ведём путь . И очень прост в использовании.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

И не лазим в папки  MQL . Всё работает в автономном режиме не нарушая файлы и папки   MQL

Вот -создаём в блокноте .VBS файл и прописываем путь в Скрипте(который выше) и он откроет metaeditor 

set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.SendKeys "{F4}"

Set WshShell = Nothing

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

только нужно галочку установить - разрешить DLL он безопасен так как, вы сами знаете что делаете.

Снимок экрана 2022-01-13 090407

 
ilqar200 #:

Записал короткое видео.Смотри.

https://drive.google.com/file/d/1RKHh9ADqf1G9022xI9p-qmpNPTu1RZa8/view?usp=sharing

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

Можно вопрос, чем и как отслеживаете связь с брокером и интернетом.

 
Valeriy Yastremskiy #:

Можно вопрос, чем и как отслеживаете связь с брокером и интернетом.

Может этим?

TerminalInfoInteger(TERMINAL_CONNECTED)
 
SanAlex #:

не, не очень. много файлов. -запутаться можно.

этот способ безопасен, ведь мы сами ведём путь . И очень прост в использовании.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

И не лазим в папки  MQL . Всё работает в автономном режиме не нарушая файлы и папки   MQL

Там нужны только три файла с расширением mqh. Остальное просто примеры.

Эти три файла кладём в папку Include. И они там лежат никому не мешают и ничего не нарушают.

 
Valeriy Yastremskiy #:

Можно вопрос, чем и как отслеживаете связь с брокером и интернетом.

Связь с брокером с помощью mql функции IsConnected() . А связь с интернетом с помощью пинга определенного сайта используя в этом winapi.Результат пинга записываеться в текстовый файл а потом читаеться этот файл . В зависимости содержание текстового файла определяеться есть ли связь с интернетом.

 
Придется мне перезаписать некоторую часть кода в связи незнанием полноценного использование winapi в mql.Нужно мне прочитать информацию как полноценно использовать winapi в mql то есть как использовать структуры,функции,сообщении,макросы и т.д winapi.На данный момент советник выполняет все действии запрограммированные в нем правильно.Но есть сомнение что где-то что-то может пойти не так в связи неполноценном использованием winapi. Мой код выглядеть тоже не профессиональном.Буду изучать дальше для того чтобы получился продукт полностью автоматизирующий торговлю в конкурсах.