Debug for mq4

Back to topics list To post a new topic, please log in or register
How To Trade: Ichimoku Strategies, Setups and What to Watch for
Many traders have had challenges trading the JPY pairs. However the Japanese traders have had large amounts of success in trading their native currency. This is not just due to familiarity, but the approach and indicators they use to measure key levels for these pairs - the Ichimoku Cloud. This indicator is not only easy to learn, but highly accurate in giving JPY trading signals.
RaptorUK 2012.10.12 17:20 #
Good afternoon, I wanted to know if there is some software that can do debug to mq4 program. Thank you.
Yes, Comment(), Print() & Alert() . . they are all you have.

jugivi 2012.10.12 17:23 #
Thanks, is what I'm using, but ...
WHRoeder 2012.10.12 20:25 #
RaptorUK: Yes, Comment(), Print() & Alert() . . they are all you have.
  1. Which do not work under optimization. And DebugView which work always:
    /** Log
    * send information to OutputDebugString() to be viewed and logged by
    * SysInternal's DebugView (free download from microsoft) This is ideal for
    * debugging as an alternative to Print(). The function will take up to 10
    * stringa (or numeric) arguments to be concatenated into one debug message.
    #import "kernel32.dll"
       void OutputDebugStringA(string msg);
    void Log(string s1,    string s2="", string s3="", string s4="", string s5="",
             string s6="", string s7="", string s8="", string s9="", string s10=""){
        if (IsDllsAllowed()){
            string out  = WindowExpertName() + ": "
                        + s1 + s2 + s3 + s4 + s5 + s6 + s7 + s8 + s9 + s10;
  2. An in the tester/visual mode you can call PauseTest()
    /*                                          PauseTest
    // Each chart consists of two windows (i.e. two hWnds): the drawing area (WH,)
    // and a container (GA.) There is then a standard MDI container which holds all
    // the chart windows (GA1.) And that sits inside the main MT4 window (GA2.)
    #include <WinUser32.mqh>
    #import "user32.dll"
      int GetAncestor(int, int);
    void PauseTest(){   datetime now = TimeCurrent();   static datetime oncePerTick;
        if( oncePerTick != now  )if( IsTesting()
        )if( IsVisualMode()     )if( IsDllsAllowed()    ){  oncePerTick = now;
            for(int i=0; i<200000; i++){        // Delay required for speed=32 (max)
                if (IsStopped()) break;         // WH-DL
                int main = GetAncestor(WindowHandle(Symbol(), Period()), 2);//GA_ROOT
                if (i==0) PostMessageA(main, WM_COMMAND, 0x57a, 0); // 1402. Pause
        }   }
        // The PostMessage above sends the command to the main terminal. Thus it
        // only affects the active chart window. To maximize a window for example
        // must activate it first.
        // See also SetForgroundWindow(h)

Back to topics list  

To add comments, please log in or register