Ich versuche, viel Reset-Button zu machen, aber ich brauche, um vielbesseres Ergebnis als diese zu bekommen, aber ich kann nicht. (Ich mag nicht alle meine ea's und Indikatoren Button-Objekte, weil alle von ihnen sehr hässlich wie diese. )
Ich brauche zwei Dinge von euch Jungs, die helfen können und gibt mir gute Ratschläge, bitte ich brauche wirklich Ihre Hilfe. Ich verbrachte eine Menge Zeit, und ich kann nicht herausfinden, was ist ein Problem mit meinem code.
Vielen Dank im Voraus.
//--- zweites Mal bearbeitet - während ich diesen Kommentar schreibe, habe ich vielleicht ein Nickerchen gemacht...
ObjectCreate ( 0, "button lot reset", OBJ_BUTTON , 0, 0, 0 ); ObjectSetString ( 0, "button lot reset", OBJPROP_TEXT , "x" ); ObjectSetString ( 0, "button lot reset", OBJPROP_FONT , "Verdana" ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_FONTSIZE , 14 ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_XDISTANCE , 16 ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_YDISTANCE , 16 ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_XSIZE , 18 ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_YSIZE , 18 ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_CORNER , CORNER_LEFT_UPPER ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_COLOR , White ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_BGCOLOR , Black ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_BORDER_COLOR , Black ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_STATE , false ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_BACK , false ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_SELECTABLE , false ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_SELECTED , false ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_HIDDEN , true ); ObjectSetInteger ( 0, "button lot reset", OBJPROP_ZORDER , true );
//+------------------------------------------------------------------+ //| Create the button | //+------------------------------------------------------------------+ bool ButtonCreate(constlong chart_ID=0, // chart's ID conststring name="Button", // button name constint sub_window=0, // subwindow index constint x=0, // X coordinate constint y=0, // Y coordinate constint width=50, // button width constint height=18, // button height constENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // chart corner for anchoring conststring text="Button", // text conststring font="Arial", // font constint font_size=10, // font size constcolor clr=clrBlack, // text color constcolor back_clr=C'236,233,216', // background color constcolor border_clr=clrNONE, // border color constbool state=false, // pressed/released constbool back=false, // in the background constbool selection=false, // highlight to move constbool hidden=true, // hidden in the object list constlong z_order=0) // priority for mouse click { //--- reset the error value ResetLastError(); //--- create the button if(!ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0)) { Print(__FUNCTION__, ": failed to create the button! Error code = ",GetLastError()); return(false); } //--- set button coordinates ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y); //--- set button size ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width); ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height); //--- set the chart's corner, relative to which point coordinates are defined ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner); //--- set the text ObjectSetString(chart_ID,name,OBJPROP_TEXT,text); //--- set text font ObjectSetString(chart_ID,name,OBJPROP_FONT,font); //--- set font size ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size); //--- set text color ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); //--- set background color ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr); //--- set border color ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr); //--- display in the foreground (false) or background (true) ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); //--- set button state ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state); //--- enable (true) or disable (false) the mode of moving the button by mouse ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); //--- hide (true) or display (false) graphical object name in the object list ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); //--- set the priority for receiving the event of a mouse click in the chart ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); //--- successful execution return(true); } //+------------------------------------------------------------------+
Bitte verwenden Sie einfach die Funktion aus der Dokumentation, um die Schaltflächen zu erstellen. Fügen Sie sie einfach am Ende Ihres Codes ein, rufen Sie die Funktion auf und übergeben Sie die Parameter.
Dann können Sie sie einfach aufrufen:
ButtonCreate(...
Auch
whroeder1:
Wenn es versteckt ist, wie kann man es dann sehen und anklicken?
Wenn sie versteckt ist, wie kann man sie dann sehen und anklicken?
ZORDER ist nicht bool, es ist ein int 0...
Danke, ich habe es korrigiert, es war nur ein Fehler. --------------------------------------------
Marco vd Heijden:
Bitte verwenden Sie die Funktion aus der Dokumentation "wie sie ist", um die Schaltflächen zu erstellen, fügen Sie sie einfach am Ende Ihres Codes ein, rufen Sie die Funktion auf und übergeben Sie die Parameter.
So dann können Sie einfach aufrufen:
ButtonCreate(...)
Danke Marco, das wird mir sehr helfen, und meine EA-Codes sieht wie aufgeräumt. Auch ich muss über unten Code fragen, was ist es, wie ist es funktionieren?(selbst ich habe darüber gelesen, aber ich verstehe nicht mehr klar)
Bitte erklären Sie es etwas genauer, vielen Dank im Voraus.
ObjectSetString ( 0, name, OBJPROP_TOOLTIP , tip );
----------------------------------------
Außerdem muss ich void anstelle von bool verwenden, wie im untenstehenden Code,was ist alsogut?
Die Funktion gibt entweder true oder false zurück, je nachdem, ob die Erstellung der Schaltfläche erfolgreich war oder nicht. Es hängt also von Ihnen ab, ob Sie überprüfen möchten, ob die Schaltfläche tatsächlich erstellt wurde.
Was die zweite Frage betrifft, so ist der Tooltip das, was sichtbar wird, wenn Sie mit der Maus über das Objekt im Diagramm fahren.
Die Art und Weise, wie Sie jetzt arbeiten, hat ihre Grenzen.
Wenn Sie sie erweitern möchten, lesen Sie bitte die folgenden Artikel:
Die Funktion gibt entweder true oder false zurück, je nachdem, ob die Erstellung der Schaltfläche erfolgreich war oder nicht. Es hängt also von Ihnen ab, ob Sie überprüfen möchten, ob die Schaltfläche tatsächlich erstellt wurde.
Was die zweite Frage betrifft, so ist der Tooltip das, was sichtbar wird, wenn Sie mit der Maus über das Objekt im Diagramm fahren.
Die Art und Weise, wie Sie jetzt arbeiten, hat ihre Grenzen.
Wenn Sie sie erweitern wollen, lesen Sie bitte die folgenden Artikel:
Ich muss das PNG-Dateiformat im Code meines EAs für das LotSize-Symbol verwenden. Aber ich fand nur .BMP-Dateiformat, so kann jemand mir helfen / beraten mich?
Wenn jeder Kommentar könnte schnell viel zu schätzen, nur ich bin ein bisschen mehr eilen. Vielen Dank im Voraus.
Ich versuche, wenn lotize besser als lotvalue 'State true' sonst 'State false'. (wenn ich auf 'Reset' klicke, wird das Objekt zu 'state false' und nachdem ich die Losgröße erhöht habe, wird der Status nicht zu true)
Ist der folgende Code falsch?
//| Lot Reset if ( sparam == _namelotRset ) { if ( _lotSize > _lotValue ) { ObjectSetInteger( 0, sparam, OBJPROP_STATE, true ); } //---if Close else { ObjectSetInteger( 0, sparam, OBJPROP_STATE, false ); } //---if Close _lotSize = _lotValue * _lotMin;
_infoUpdate(); return; } //---if Close
Danke!
//--- zweites Mal bearbeitet
Ich versuche'ON OFF' mit untenstehendem Code zu schalten.
Standard Constants, Enumerations and Structures / Objects Constants / Object Types / OBJ_BITMAP - Reference on algorithmic/automated trading language for MetaTrader 5
Ich versuche, viel Reset-Button zu machen, aber ich brauche, um vielbesseres Ergebnis als diese zu bekommen, aber ich kann nicht.
(Ich mag nicht alle meine ea's und Indikatoren Button-Objekte, weil alle von ihnen sehr hässlich wie diese. )
Ich brauche zwei Dinge von euch Jungs, die helfen können und gibt mir gute Ratschläge, bitte ich brauche wirklich Ihre Hilfe.
Ich verbrachte eine Menge Zeit, und ich kann nicht herausfinden, was ist ein Problem mit meinem code.
Vielen Dank im Voraus.
//--- zweites Mal bearbeitet - während ich diesen Kommentar schreibe, habe ich vielleicht ein Nickerchen gemacht...
ObjectSetString ( 0, "button lot reset", OBJPROP_TEXT , "x" );
ObjectSetString ( 0, "button lot reset", OBJPROP_FONT , "Verdana" );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_FONTSIZE , 14 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_XDISTANCE , 16 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_YDISTANCE , 16 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_XSIZE , 18 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_YSIZE , 18 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_CORNER , CORNER_LEFT_UPPER );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_COLOR , White );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_BGCOLOR , Black );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_BORDER_COLOR , Black );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_STATE , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_BACK , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_SELECTABLE , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_SELECTED , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_HIDDEN , true );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_ZORDER , true );
//| Create the button |
//+------------------------------------------------------------------+
bool ButtonCreate(const long chart_ID=0, // chart's ID
const string name="Button", // button name
const int sub_window=0, // subwindow index
const int x=0, // X coordinate
const int y=0, // Y coordinate
const int width=50, // button width
const int height=18, // button height
const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // chart corner for anchoring
const string text="Button", // text
const string font="Arial", // font
const int font_size=10, // font size
const color clr=clrBlack, // text color
const color back_clr=C'236,233,216', // background color
const color border_clr=clrNONE, // border color
const bool state=false, // pressed/released
const bool back=false, // in the background
const bool selection=false, // highlight to move
const bool hidden=true, // hidden in the object list
const long z_order=0) // priority for mouse click
{
//--- reset the error value
ResetLastError();
//--- create the button
if(!ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0))
{
Print(__FUNCTION__,
": failed to create the button! Error code = ",GetLastError());
return(false);
}
//--- set button coordinates
ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- set button size
ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
//--- set the chart's corner, relative to which point coordinates are defined
ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
//--- set the text
ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- set text font
ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
//--- set font size
ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
//--- set text color
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- set background color
ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
//--- set border color
ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
//--- display in the foreground (false) or background (true)
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- set button state
ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
//--- enable (true) or disable (false) the mode of moving the button by mouse
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- hide (true) or display (false) graphical object name in the object list
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- set the priority for receiving the event of a mouse click in the chart
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- successful execution
return(true);
}
//+------------------------------------------------------------------+
Bitte verwenden Sie einfach die Funktion aus der Dokumentation, um die Schaltflächen zu erstellen. Fügen Sie sie einfach am Ende Ihres Codes ein, rufen Sie die Funktion auf und übergeben Sie die Parameter.
Dann können Sie sie einfach aufrufen:
Auch
Danke, ich habe es korrigiert, es war nur ein Fehler.
--------------------------------------------
Bitte verwenden Sie die Funktion aus der Dokumentation "wie sie ist", um die Schaltflächen zu erstellen, fügen Sie sie einfach am Ende Ihres Codes ein, rufen Sie die Funktion auf und übergeben Sie die Parameter.
So dann können Sie einfach aufrufen:
Danke Marco, das wird mir sehr helfen, und meine EA-Codes sieht wie aufgeräumt.
Auch ich muss über unten Code fragen, was ist es, wie ist es funktionieren? (selbst ich habe darüber gelesen, aber ich verstehe nicht mehr klar)
Bitte erklären Sie es etwas genauer, vielen Dank im Voraus.
----------------------------------------
Außerdem muss ich void anstelle von bool verwenden, wie im untenstehenden Code,was ist alsogut?
// or
void ButtonCreate(...)
Die Funktion gibt entweder true oder false zurück, je nachdem, ob die Erstellung der Schaltfläche erfolgreich war oder nicht. Es hängt also von Ihnen ab, ob Sie überprüfen möchten, ob die Schaltfläche tatsächlich erstellt wurde.
Was die zweite Frage betrifft, so ist der Tooltip das, was sichtbar wird, wenn Sie mit der Maus über das Objekt im Diagramm fahren.
Die Art und Weise, wie Sie jetzt arbeiten, hat ihre Grenzen.
Wenn Sie sie erweitern möchten, lesen Sie bitte die folgenden Artikel:
https://www.mql5.com/en/search#!keyword=graphical%20interfaces&module=mql5_module_articles
Die Funktion gibt entweder true oder false zurück, je nachdem, ob die Erstellung der Schaltfläche erfolgreich war oder nicht. Es hängt also von Ihnen ab, ob Sie überprüfen möchten, ob die Schaltfläche tatsächlich erstellt wurde.
Was die zweite Frage betrifft, so ist der Tooltip das, was sichtbar wird, wenn Sie mit der Maus über das Objekt im Diagramm fahren.
Die Art und Weise, wie Sie jetzt arbeiten, hat ihre Grenzen.
Wenn Sie sie erweitern wollen, lesen Sie bitte die folgenden Artikel:
https://www.mql5.com/en/search#!keyword=graphical%20interfaces&module=mql5_module_articles
Ein riesiges Dankeschön.
WOW, Sie werden mein Mann sein, Mr. Marco.
( seit Deinem ersten Kommentar - Du hast mir sehr geholfen - Du versuchst immer, meine Anliegen zu verstehen - noch einmal herzlichen Dank )
Ich muss das PNG-Dateiformat im Code meines EAs für das LotSize-Symbol verwenden.
Aber ich fand nur .BMP-Dateiformat, so kann jemand mir helfen / beraten mich?
Wenn jeder Kommentar könnte schnell viel zu schätzen, nur ich bin ein bisschen mehr eilen.
Vielen Dank im Voraus.
Ich versuche, wenn lotize besser als lotvalue 'State true' sonst 'State false'.
(wenn ich auf 'Reset' klicke, wird das Objekt zu 'state false' und nachdem ich die Losgröße erhöht habe, wird der Status nicht zu true)
Ist der folgende Code falsch?
if ( sparam == _namelotRset )
{
if ( _lotSize > _lotValue )
{
ObjectSetInteger( 0, sparam, OBJPROP_STATE, true );
} //---if Close
else
{
ObjectSetInteger( 0, sparam, OBJPROP_STATE, false );
} //---if Close
_lotSize = _lotValue * _lotMin;
_infoUpdate();
return;
} //---if Close
Danke!
//--- zweites Mal bearbeitet
Ich versuche'ON OFF' mit untenstehendem Code zu schalten.
Siehe dazu:
https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_bitmap
Für das Bitmap-Problem.
Und für das andere Problem können Sie es in separate Teile splitten, um den Zustand außerhalb von sparam zu setzen.