Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нашел прибыльную стратегию? Поделись ею с миллионами трейдеров в Сигналах!
Andrew Kornishkin
6687
Andrew Kornishkin 2011.05.07 14:12 

Подскажите пожалуйста как вынести часть функций эксперта в DLL?

Смотрел форум, справку, Sample DLL for MQL4 . Есть ли где то статья на эту тему с примерами? Компилятор C++ Builder 6.

Например функцию:

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double ma;
   int    res;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//---- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- sell conditions
   if(Open[1]>ma && Close[1]<ma)  
     {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
      return;
     }
//---- buy conditions
   if(Open[1]<ma && Close[1]>ma)  
     {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
      return;
     }
//----
  }
//+------------------------------------------------------------------+
Владимир Тезис
4271
Владимир Тезис 2011.05.07 18:46  

Посмотрите вот это https://www.mql5.com/ru/forum/105905

А собственно, зачем такие функции выносить в dll? Чем обычная библиотка mq4 не устраивает? Её можно создать средствами MQL4, вынести в неё любые нужные подпрограммы и подключать к любому советнику, индикатору, скрипту.

Andrew Kornishkin
6687
Andrew Kornishkin 2011.05.07 20:14  
drknn:

Посмотрите вот это https://www.mql5.com/ru/forum/105905

А собственно, зачем такие функции выносить в dll? Чем обычная библиотка mq4 не устраивает? Её можно создать средствами MQL4, вынести в неё любые нужные подпрограммы и подключать к любому советнику, индикатору, скрипту.


DLL декомпилировать сложнее.
Nikolay Khrushchev
18967
Nikolay Khrushchev 2011.05.07 21:37  

Не по теме конечно но хочу предупредить что вариант работы "по ценам открытия" у вас реализован неверно.

 if(Volume[0]>1) return;

Данный алгоритм не работает с барами с переходным тиком. Т.е. когда Тик пришел в момент завершения прошлого бара и новый бар сразу имеет объем 1.

Вот так правильно:

if (TimeN == Time[0]) return; else TimeN=Time[0];
Владимир Тезис
4271
Владимир Тезис 2011.05.08 08:56  
AM2:

DLL декомпилировать сложнее.

На одном из форумов есть описание процедуры создания трейлингстопа внутри dll. Ссылку на тот форум скинул Вам в личку. Используемый язык - Delphi. Пусть Вас не пугает Delphi - принципы то одни и те же.
Владимир Тезис
4271
Владимир Тезис 2011.05.08 09:07  
Хотяяя, вообще знаете - сомнительная это затея. Вряд ли в языке C++ (так же как и в Delphi) есть команда OrderSend. Хотя, чем чёрт не шутит - может там что-то используется позволяющее вводить команды другого языка... Чес слово - я бы не стал так шифроваться :) - dll-ку легко дизассемблировать. Вы конечно, можете сунуть туда шифрование, перемешать код для затруднения понимания его работы, но всё равно, если кто-то захочет вынуть его на свет Божий, то не поможет ни какая защита - будет использовано всё вплоть до создания снимков оперативной памяти. Не тратили бы Вы впустую время.
Владимир Тезис
4271
Владимир Тезис 2011.05.08 09:15  
Вот есть тут на форуме статья о защите программного кода. Хорошая статья. Думаю, Вам она поможет как нельзя лучше. https://www.mql5.com/ru/articles/1572#comments
Андрей
1890
Андрей 2011.05.08 09:38  
drknn:
dll-ку легко дизассемблировать

Я вам длльку, вы мне- исходник на С++, описание логики и инструкцию по использованию- ок?

drknn:
Используемый язык - Delphi. Пусть Вас не пугает Delphi - принципы то одни и те же.
Лично меня делфи не пугает- у меня к нему стойкое отвращение :-)
Andrew Kornishkin
6687
Andrew Kornishkin 2011.05.08 13:04  
drknn:

На одном из форумов есть описание процедуры создания трейлингстопа внутри dll. Ссылку на тот форум скинул Вам в личку. Используемый язык - Delphi. Пусть Вас не пугает Delphi - принципы то одни и те же.
Delphi, Pascal нормально.
drknn:
Вот есть тут на форуме статья о защите программного кода. Хорошая статья. Думаю, Вам она поможет как нельзя лучше. https://www.mql5.com/ru/articles/1572#comments

Прежде чем вопрос писать посмотрел все что можно было найти. Спасибо.
drknn:
Хотяяя, вообще знаете - сомнительная это затея. Вряд ли в языке C++ (так же как и в Delphi) есть команда OrderSend. Хотя, чем чёрт не шутит - может там что-то используется позволяющее вводить команды другого языка... Чес слово - я бы не стал так шифроваться :) - dll-ку легко дизассемблировать. Вы конечно, можете сунуть туда шифрование, перемешать код для затреднения понимания его работы, но всё равно, если кто-то захочет вынуть его на свет Божий, то не поможет ни какая защита - будет использовано всё вплоть до создания снимков оперативной памяти. Не тратили бы Вы впустую время.
Задумывал изначально только как защиту от новичков.
Владимир Тезис
4271
Владимир Тезис 2011.05.08 14:18  
jartmailru:

Я вам длльку, вы мне- исходник на С++, описание логики и инструкцию по использованию- ок?

А разьве я во взломщики набивался? Или мож я где-то сказал, что в С++ шарю? Вы ни чего не попутали, случаем?
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий