Create Simple MQL5 EA template with DLL ML.NET Model Builder

2020.03.13 Experts Integration

Specification

Create Simple MQL5 EA template with DLL ML.NET Model Builder

Require MQL5 with Source code and DLL C# with Source code

Using Microsoft Visual Studio 2019 Community Edition with ML.NET Model Builder Create DLL with language C# and function check value from DLL MODEL

Create Simple EA MQL5
Create DLL C# connect to ML.NET Model Builder

MQL5 EA Trade rule simple
When DLL Return value high over XX pip from current price open trade BUY
When DLL Return value low over XX pip from current price open trade SELL

EA MQL5 ==> C# DLL ===>  ML.NET Model Builder
EA MQL5 <== C# DLL <===  ML.NET Model Builder

I can do MQL5 some, but I can not code C# I want to create DLL file for using with MQL5, So I need  C# DLL part for using with MQL5
on C# path just receive data from EA MQL5 sent to dll and put it to function

// Add input data
var input = new ModelInput();

// Load model and predict output of sample data
ModelOutput result = ConsumeModel.Predict(input);


How EA it work
When NEW BAR  EA sent data 7 value of last bar DateTime,OpenPrice,HighPrice,LowPrice,Close Price,AdjustPrice,TickVolume  to DLL calculate and get result return and result return is value price in future from DLL calculate, EA check value difference from value return from DLL and value of current price, if value difference over pips value on setting will open trade by if high open BUY and if low open sell

How to create
using Microsoft Visual Studio 2019 with install ML.NET Model Builder

What EA check each new bar?
String DateTime,double OpenPrice,double HighPrice,double LowPrice,double ClosePrice,Int TickVolume

What value new bar sent to?
String DateTime,double OpenPrice,double HighPrice,double LowPrice,double ClosePrice,Int TickVolume

When DLL got new bar value.
// Add input data
var input = new ModelInput();

What is return value?
ModelOutput result = ConsumeModel.Predict(input);


Example (idea like this, sample , you can fix correct/ change to right code)

MQL5 setting value
input BUYHighPIPs = 30;
input SELLLowPIPs = 20;


MQL5 function call
#import "MLNETModelBuilder.dll"
   double MLNETModelBuilder(String DateTime,double OpenPrice,double HighPrice,double LowPrice,double ClosePrice,Int TickVolume);
#import

MLNETModelBuilder();


DLLReturnValue = MLNETModelBuilder(NowTime,OpenPrice,HighPrice,LowPrice,ClosePrice,TickVolume)

DLLReturnValue ==> (value return from DLL calculate)
DifferenceBUY=DLLReturnValue-Ask;
DifferenceSELL=Bid-DLLReturnValue;
if(DifferenceBUY>BUYHighPIPs) m_trade.BUY()
if(DifferenceSELL>SELLLowPIPs) m_trade.SELL()

Display simple comment
show what data value sent to DLL
and What value DLL calculate and return

for sample of ML.NET Model Builder (when you create DLL work)
add ML.NET Model Builder by using any pair like EURUSD with 7 colume data DateTime,OpenPrice,HighPrice,LowPrice,ClosePrice,AdjustPrice,TickVolume  and Choose select predict with Adjust Price then add code to DLL


TESTING
EA sent value to DLL correctly
DLL got value from EA correctly
DLL return value calculate correctly
EA got value from DLL correctly

TESTING1 (offline back testing)
Back testing with Visual Mode EA display show information correct


TESTING2 (live demo)
when drop EA to chart, EA display show information correct and when NEW BAR EA got new value from DLL it work. every thing look fine.

TESTING3 (live demo)
just setting value pips difference very low 1 pip and drop EA to Live Chat and show comment data correct then EA open trade that is ok.





Project information

Budget
30+ USD
For the developer
27 USD

Customer

Placed orders2
Arbitrage count0