Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 11 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 435
Gesamt: 435
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree3Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 30.09.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 238
Max2018 befindet sich auf einem aufstrebenden Ast
Standard Button

Hi,

warum geht dieser Button nicht

Code:
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ObjectCreate(0,BUTTON_NAME,OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_XSIZE,200);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_YSIZE,100);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_BGCOLOR,clrFuchsia);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_COLOR,clrWhite);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_XDISTANCE,100);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_YDISTANCE,100);
   ObjectSetString(0,BUTTON_NAME,OBJPROP_TEXT,"BUY");
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   ObjectDelete(BUTTON_NAME);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(lparam==BUTTON_NAME)
   {
   Comment("AAAAAA");
   //OrderSend(_Symbol,OP_BUY,1,Ask,0,0,0);
   //oder halt eine andere Variable ändern die dann im EA eine Aktion ausführt !
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_STATE,false); //setzt den Button zurück
   
  }}
//+------------------------------------------------------------------+
  #2 (permalink)  
Alt 30.09.19
Gesperrter Benutzer
 
Registriert seit: Sep 2019
Ort: Wien
Beiträge: 46
ixbone befindet sich auf einem aufstrebenden Ast
Standard

Ist die Anzeige gemeint oder weil keine Aktion stattfindet?
  #3 (permalink)  
Alt 30.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Weil die Funktion

OnChartEvent ()

fehlt.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #4 (permalink)  
Alt 30.09.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 42
Bayreuther befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Max2018 Beitrag anzeigen
Hi,

warum geht dieser Button nicht

Code:
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ObjectCreate(0,BUTTON_NAME,OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_XSIZE,200);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_YSIZE,100);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_BGCOLOR,clrFuchsia);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_COLOR,clrWhite);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_XDISTANCE,100);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_YDISTANCE,100);
   ObjectSetString(0,BUTTON_NAME,OBJPROP_TEXT,"BUY");
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   ObjectDelete(BUTTON_NAME);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(lparam==BUTTON_NAME)
   {
   Comment("AAAAAA");
   //OrderSend(_Symbol,OP_BUY,1,Ask,0,0,0);
   //oder halt eine andere Variable ändern die dann im EA eine Aktion ausführt !
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_STATE,false); //setzt den Button zurück
   
  }}
//+------------------------------------------------------------------+
So sollte Dein "Comment" angezeigt werden.

Code:
string BUTTON_NAME = "Button";

#include <stdlib.mqh>

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   ObjectCreate(0,BUTTON_NAME,OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_XSIZE,200);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_YSIZE,100);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_BGCOLOR,clrFuchsia);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_COLOR,clrWhite);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_XDISTANCE,100);
   ObjectSetInteger(0,BUTTON_NAME,OBJPROP_YDISTANCE,100);
   ObjectSetString(0,BUTTON_NAME,OBJPROP_TEXT,"BUY");
  
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{

   ObjectDelete(BUTTON_NAME);
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{


}
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
   if(sparam==BUTTON_NAME)
   {
      Comment("AAAAAA");
      //OrderSend(_Symbol,OP_BUY,1,Ask,0,0,0);
      //oder halt eine andere Variable ändern die dann im EA eine Aktion ausführt !
      ObjectSetInteger(0,BUTTON_NAME,OBJPROP_STATE,false); //setzt den Button zurück
   }
}
//+------------------------------------------------------------------+
  #5 (permalink)  
Alt 30.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Weil die Funktion

OnChartEvent ()

fehlt.

traderdoc
Sorry, ich konnte auf dem Handy nicht nach unten scrollen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 30.09.19
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Max2018 Beitrag anzeigen
warum geht dieser Button nicht
vergleiche Deinen Code mit dem Beispiel von
Zitat:
Zitat von Bayreuther Beitrag anzeigen
Code:
if(lparam==BUTTON_NAME)
if(sparam==BUTTON_NAME)
BUTTON_NAME ist ein string, also mußt Du bei dem Event-Parameter auch vergleichen, ob der string-Parameter (sparam) der des Button-Namens ist - lparam ist für long Werte.
Tip: grundsätzlich am Anfang immer "#property strict" setzen und beim Kompilieren auf das achten, was er zu meckern hat, dann jede Meldung durchgehen (Doppelklick auf Warnmeldung bringt Dich direkt zur fraglichen Zeile) und nachdenken was es (da denn schon wieder ) zu meckern gibt. Mir hilft das oft weiter. AVT
  #7 (permalink)  
Alt 01.10.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 238
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

SUPER Danke


Noch ein Frage:
Gibt es ein Möglichkeit, dass der auch im Strategietester läuft?
  #8 (permalink)  
Alt 01.10.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 42
Bayreuther befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Max2018 Beitrag anzeigen
SUPER Danke


Noch ein Frage:
Gibt es ein Möglichkeit, dass der auch im Strategietester läuft?
Leider nein, da die Funktion "OnChartEvent()" im Strategietester nicht unterstützt wird. Dieses kannst Du auch hier nachlesen.
  #9 (permalink)  
Alt 01.10.19
Mitglied
 
Registriert seit: Jun 2011
Ort: Minsk, Weißrussland
Beiträge: 87
Bobs befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Max2018 Beitrag anzeigen
Noch ein Frage:
Gibt es ein Möglichkeit, dass der auch im Strategietester läuft?
Warum nicht? Es ist möglich ein Stand des Buttons im Strategietester definieren. Das wird aber ein anderen Algorithmus, ohne OnChartEvent(). Bei diesem wird Button bei nachfolgenden Tick reagieren.
AVT likes this.
  #10 (permalink)  
Alt 01.10.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Bobs Beitrag anzeigen
Warum nicht? Es ist möglich ein Stand des Buttons im Strategietester definieren. Das wird aber ein anderen Algorithmus, ohne OnChartEvent(). Bei diesem wird Button bei nachfolgenden Tick reagieren.
Jetzt machst Du mich aber richtig neugierig.
Schreibe doch mal bitte den Code dazu.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Thema geschlossen

Lesezeichen

Stichworte
button

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------