The voenix bridge permits you to obtain new patterns -that voenix finds- into different applications operating on the identical terminal.
- The bridge will solely ship newly discovered patterns
- It might ship the preliminary sample listing upon startup in case you select so
To allow the bridge ,scroll all the way down to the primary enter display screen of voenix when attaching it , earlier than it seems on the chart and switch the bridge on.
The information delivered incorporates :
- Sample title
- Sample course of the could be commerce for that sample (Bullish , Bearish) in string and instantly usable kind (OP_BUY/OP_SELL or ORDER_TYPE_BUY/ORDER_TYPE_SELL)
- The image the sample was present in
- The timeframe the sample was present in for that image , each in string and instantly usable kind (ENUM_TIMEFRAMES)
- The time it was found
- The could be commerce ranges ensuing out of your sample settings (SL , TP1 , TP2 , TP3 and OP)
- The standing of the 5 indicators (true or false) for additional filtration (rsi / macd / bollinger bands / stochastic / sr)
- An array of all factors of the sample with value time and level decall (textual content X A B C and so on)
Chances are you’ll discover the recordsdata for mt4 and mt5 under (hooked up) , and a pattern utilization code follows (from the mt4 recordsdata)
#property copyright "Copyright 2022, MetaQuotes Software program Corp." #property hyperlink "https://www.mql5.com" #property model "1.00" #property strict #embrace "VoenixBridge.mqh"; enter uint read_interval=1000; bool has_timer=false,busy=false; voenix_pattern_list BRIDGE; string Voenix_folder="VoenixInterim"; string Voenix_bridge_folder="bridge"; string Voenix_write_indicator="wi.txt"; string Voenix_rolling_name="r.txt"; string Voenix_new_data_flag="nd.txt"; int OnInit() { BRIDGE.reset(); busy=false; has_timer=EventSetMillisecondTimer(read_interval); if(!has_timer){return(INIT_FAILED);} return(INIT_SUCCEEDED); } void OnDeinit(const int purpose) { BRIDGE.reset(); if(has_timer){EventKillTimer();} } void OnTick() { } void OnTimer() { if(!busy) { busy=true; bool new_patterns=BRIDGE.load(Voenix_folder,Voenix_bridge_folder,Voenix_write_indicator,Voenix_rolling_name,Voenix_new_data_flag,true,100); if(new_patterns) { int patterns_returned=ArraySize(BRIDGE.patterns); bool is_initial_list=BRIDGE.initial_load; Print("Discovered "+IntegerToString(patterns_returned)+" Patterns"); Print("Is preliminary listing "+BoolToString(is_initial_list)); for(int p=0;p<ArraySize(BRIDGE.patterns);p++) TIME_MINUTES } busy=false; } }