Create an EA that will open 4 empty subwindows with its appropriate height

Trabajo finalizado

Plazo de ejecución 1 día
Comentario del Ejecutor
I'm glad I met the client. It was difficult, but everything worked out. Thanks for your patience!
Comentario del Cliente
good programmer.... finished the job in 1 day when i gave 3 days

Tarea técnica

repair these mt5 files so it will open 4 panes using hash tables to manage the subwindow handles
each pane row heights are defined in externvariables

#define SUBWINDOW1 "Technical Window 1"     // Shortname
#define SUBWINDOW2 "Technical Window 2"
#define SUBWINDOW3 "Technical Window 3"

#define SUBWINDOW4 "Trade Window"

use SubwindowTemplate to open the 4 windows above, height = 60 pixel/pane, show subwindow shortname on the top left corner of the subwindows

Obtain the full height without subwindow of the Main Chart in pixels.  80% of total Chart height dedicated to 4 panes.  each pane will have 20% max chart pixel and divide that by 12 maximum rows and 30 maximum column
save these pixel heights in int    m_YDistance[Y_DISTANCE_BUFFER];

example, total height of chart = 1000 pixels.  800 pixel dedicated to the subwindows.  each subwindows have a maximum of 12 rows. so 800 pixels/4 panes = 200 pixel/12 rows = ......

instead of using iCustoms to open the subwindows use hash to open the windows instead

like the following:-
CGraphics::Graphics()
[
     m_WindowsHash=new Hash(); // create new hash to manage the window handlers
}

CGraphics::InitTechnicalAnalysisWindow0(string WindowName)

{

if(!InitSubwindow(WindowName))

    {

      printf("Fail to Init Sub-Window Name = "+WindowName);

      return false;

    }

    int windowID = ChartWindowFind(m_WindowID[1], WindowName);   

   if(windowID<0)

      return false;

ResizeSubWindow(WindowName,m_ChartHeightPixel[1]);

}

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

bool Graphics::StartCustomIndicator(int hWnd,string ChartName,bool AutomaticallyAcceptDefaults=false)

  {

   ResetLastError();

   

   printf("Start Custom Indicator");


   uchar charArrayIndicatorName[];

   StringToCharArray(ChartName,charArrayIndicatorName,0);


   // printf("charArrayIndicatorName = "+charArrayIndicatorName);


   int MessageNumber=RegisterWindowMessageW("MetaTrader4_Internal_Message");

   int res=SendMessageW(hWnd,MessageNumber,15,charArrayIndicatorName);

   if(res)

     {

      LogError(__FUNCTION__,"Failed to post a msg winAPI",GetLastError());

      return false;

     }


   return true;

  }

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+  

bool Graphics::InitSubwindow(string ChartName)

  {

   ResetLastError();

   

   if(WindowFind(ChartName)>0)

     {

      if(m_WindowsHash.hGetInt(ChartName) < 0)

         m_WindowsHash.hPutInt(ChartName,WindowFind(ChartName));


      return true;

     }


   int hWnd=WindowHandle(Symbol(),0);

   if(!hWnd)

     {

      LogError(__FUNCTION__,"Window not found",GetLastError());

      return false;

     }

   bool res=StartCustomIndicator(hWnd,ChartName);

   if(WindowFind(ChartName)<0)

     {

      MessageBox(ChartName+" Indicator window not found.","ERROR",MB_ICONERROR);

      LogError(__FUNCTION__,ChartName+" Indicator window not found",GetLastError());

      return false;

     }


   if(res)

      m_WindowsHash.hPutInt(ChartName,WindowFind(ChartName));


   return res;

  }


Archivos adjuntos:

MQ5
Guan_DNA.mq5
3.2 Kb
MQH
Enums.mqh
1.1 Kb
MQH
Graphics.mqh
10.3 Kb
MQH
Hash.mqh
20.7 Kb

Han respondido

1
Desarrollador 1
Evaluación
(2)
Proyectos
2
0%
Arbitraje
1
0% / 0%
Caducado
0
Libre
Solicitudes similares
// Add this to your EA after ExportState() function void SendToBase44(const string state, const string dir, double entry, double sl, double tp) { string url = " https://preview-sandbox--ee0a32a725b788974de435e8cef40b7a.base44.app/api/functions/receiveEAState "; string headers = "Content-Type: application/json\r\n"; string json = "{" "\"symbol\":\""+_Symbol+"\","
For only developer who understand Chaos/ Profiunity trading system by Bill WIlliams, Create The Profitunity System Trading based on Bill Williams Chaos theory, Trade based on Trend Affirmation in Daily, entry in H4, using Williams Fractal, Williams Alligator, Awesome Oscillator, Accelerator Oscillator, Market Facilitation Index. Balance Line, entry on Reversal, add on while market show continuation sign. Please quote
1.Sinyal Perdagangan : Sinyal beli: garis MACD utama memotong garis sinyal ke atas (macd_current>signal_current && macd_previous<signal_previous). Sinyal jual: garis MACD utama memotong garis sinyal ke bawah (macd_current<signal_current && macd_previous>signal_previous). Gambar di bawah menunjukkan kasus beli dan jual. 2. Posisi ditutup pada sinyal yang berlawanan: Posisi beli ditutup pada sinyal jual, dan posisi
specification High-Frequency Candle Momentum Scalper 1. Strategy Overview Core Logic: The EA identifies the current color of the active candle (Bullish or Bearish). Entry Trigger: It opens positions only after a specific duration of the candle has passed (e.g., after 30 seconds on a 1-minute candle) to confirm the direction. 2. Entry Logic (The "Half-Candle" Rule) Timeframe: M1 (Default, but adjustable). Time Filter
Olá, preciso de um programador para montar um indicador com base na sobrevenda do estocastico, volume macd, para uma estrategia de reversão e falso rompimento com regioes de OB validos minimas e maximas de H1, H4, D1 e canais para confluencias, quero que seja didatico visualmente e com cores, sons de alertas e algum sinal de call ou put como setas indicando reversões e falsos rompimentos e continuidade

Información sobre el proyecto

Presupuesto
100 - 300 USD
Plazo límite de ejecución
de 1 a 2 día(s)