Navigator

Einloggen oder registrieren, um einen Kommentar zu schreiben
amando
2886
amando  

hallo,


sagt mal, gibts für den Navigator eigentlich auch einen mql5 befehl zum ein und ausblenden oder geht das nur über die shortcut?


Otto Pauser
2167
Otto Pauser  
amando:

hallo,

sagt mal, gibts für den Navigator eigentlich auch einen mql5 befehl zum ein und ausblenden oder geht das nur über die shortcut?

Du kannst Tasten simulieren. Das hab ich mal irgendwo gefunden:

//+------------------------------------------------------------------+
//|                                                   AutoTrader.mq5 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"

#define VK_CONTROL 0x11 //CTRL key
#define KEY_CODE   'E'

#import "user32.dll"
void  keybd_event(int bVk,int bScan,int dwFlags,int dwExtraInfo);
//   int      SendMessageA(int hWnd,int Msg,int wParam,int lParam);
#import

#include<Trade\Trade.mqh>

CTrade trade;

CPositionInfo position;

input int StartHour   =  9;
input int StartMinute = 30;
input int StopHour    = 23;
input int StopMinute  = 30;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
{
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   Comment("");
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Key()  // Simulation Ctrl+E
{
   keybd_event(VK_CONTROL,0,0,0);
   Sleep(10);
   keybd_event(KEY_CODE,0,0,0);
   Sleep(10);
   keybd_event(KEY_CODE,0,2,0);
   Sleep(10);
   keybd_event(VK_CONTROL,0,2,0);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool TimeSession(int aStartHour,int aStartMinute,int aStopHour,int aStopMinute,datetime aTimeCur)
{
   int StartTime=3600*aStartHour+60*aStartMinute;
   int StopTime =3600*aStopHour +60*aStopMinute;

   aTimeCur=aTimeCur%86400;
   if(StopTime<StartTime)
      {
         if(aTimeCur>=StartTime || aTimeCur<StopTime)
            return(true);
      }
   else
      {
         if(aTimeCur>=StartTime && aTimeCur<StopTime)
            return(true);
      }
   return(false);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
{
   if(!TimeSession(StartHour,StartMinute,StopHour,StopMinute,TimeCurrent()))
      {
         for(int i=0; i<PositionsTotal(); i++)
            {
               if(position.Select(PositionGetSymbol(i)))
                  {
                     trade.PositionClose(PositionGetSymbol(i));
                  }
            }
      }

   if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==0 && TimeSession (StartHour,StartMinute,StopHour,StopMinute,TimeCurrent())) Key();
   if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==1 && !TimeSession(StartHour,StartMinute,StopHour,StopMinute,TimeCurrent())) Key();

   Comment("\n Enable: ",TerminalInfoInteger(TERMINAL_TRADE_ALLOWED),
           "\n Time: ",TimeCurrent());
}
//+------------------------------------------------------------------+

Mittlerweile vermerke ich mir in den Dateien wo ich sie gefunden habe, hier habe ich es leider noch nicht gemacht.

Auf YT findest du auch sowas vom Jim Hodges alias 'Jim Dandy'

Eingebaute Funktion in mql5 gibt's leider nicht.

amando
2886
amando  
Danke otto
amando
2886
amando  

Hat wer eine idee, scheitere ich da am vps server oder an mt5?


Den code hab ich von oben 1:1 übernommen, dachte mal ich probier das mal mit dem vorgegebeb stgr e

amando
2886
amando  
amando:

Hat wer eine idee, scheitere ich da am vps server oder an mt5?


Den code hab ich von oben 1:1 übernommen, dachte mal ich probier das mal mit dem vorgegebeb stgr e

Oder hat das was mit dem 64bit system zu tun, so wies hier im beispiel steht?

https://www.mql5.com/de/docs/basis/preprosessor/import

amando
2886
amando  
amando:

Oder hat das was mit dem 64bit system zu tun, so wies hier im beispiel steht?

https://www.mql5.com/de/docs/basis/preprosessor/import

Mitlerweile bin ich ja schon weitergekommen, ja es gibt scheinbar einen unterschied zwischen 32 und 64 bit, aber der ist da egal

mir kommt der fehler erst beim aufruf von

 
void Key()  // Simulation Ctrl+E
{
   keybd_event(VK_CONTROL,0,0,0);
   Sleep(10);
   keybd_event(KEY_CODE,0,0,0);
   Sleep(10);
   keybd_event(KEY_CODE,0,2,0);
   Sleep(10);
   keybd_event(VK_CONTROL,0,2,0);
}

Den code versteh ich soweit, zuerst drücke ich und dann lass ich los.aber warum nimmt er mir dann die dll nicht mehr?

Und beim init überprüft mql5 scheinbar ob die funktionen erlaubt sind, beim kompelieren bringt er keinen fehler, erst wenn ich den aufruf 


Key();

Auskommentiere gehts, aber das ist ja nicht der sinn der übung.



Edit: und jetzt versteh ich die welt gar nicht mehr.

hab einen ea geschrieben um ihn hier zu posten, geb den auf den chart und es geht.

geb den originalen wieder drauf geht auch.

er ladet sich die dll erst nach, nachdem er einmal vom chart entfernt wurde. Problem gelöst

Alain Verleyen
40372
Alain Verleyen  

Das liegt daran, dass Sie DLL an zwei Stellen aktivieren müssen. Die allgemeinen Einstellungen wie im obigen Screenshot und die EA-Einstellungen.

Wenn die DLL für allgemeine Einstellungen aktiviert ist, BEVOR Sie Ihren EA in das Diagramm einfügen, wird die EA-Einstellung automatisch aktiviert.

Wenn die allgemeine Einstellung deaktiviert ist und sich Ihr EA beim Aktivieren bereits im Diagramm befindet, müssen Sie sie auch in den EA-Einstellungen aktivieren.


Einloggen oder registrieren, um einen Kommentar zu schreiben