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: 4340
Beiträge: 39881
Benutzer: 6.672
Aktive Benutzer: 194
Links: 80
Wir begrüßen unseren neuesten Benutzer: Rupp
Mit 1.311 Benutzern waren die meisten Benutzer gleichzeitig online (16.09.19 um 01:18).
Neue Benutzer:
vor 2 Tagen
- Rupp
vor 5 Tagen
- walkn
vor einer Woche
- hakanhukum...
vor einer Woche
- Marco_FX
vor einer Woche
- Manoo

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

Empfehlungen

Like Tree3Likes
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 30.09.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
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
   
  }}
//+------------------------------------------------------------------+
Mit Zitat antworten
  #2 (permalink)  
Alt 30.09.19
Mitglied
 
Registriert seit: Sep 2019
Ort: Wien
Beiträge: 42
ixbone befindet sich auf einem aufstrebenden Ast
Standard

Ist die Anzeige gemeint oder weil keine Aktion stattfindet?
Mit Zitat antworten
  #3 (permalink)  
Alt 30.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.258
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.
Mit Zitat antworten
  #4 (permalink)  
Alt 30.09.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 34
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
   }
}
//+------------------------------------------------------------------+
Mit Zitat antworten
  #5 (permalink)  
Alt 30.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.258
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.
Mit Zitat antworten
  #6 (permalink)  
Alt 30.09.19
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 242
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
Mit Zitat antworten
  #7 (permalink)  
Alt 01.10.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
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?
Mit Zitat antworten
  #8 (permalink)  
Alt 01.10.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 34
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.
Mit Zitat antworten
  #9 (permalink)  
Alt 01.10.19
Mitglied
 
Registriert seit: Jun 2011
Ort: Minsk, Weißrussland
Beiträge: 72
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.
Mit Zitat antworten
  #10 (permalink)  
Alt 01.10.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.258
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.
Mit Zitat antworten
Antwort

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 05:42 Uhr.


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