|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Text im EA anzeigen
Ein Hallo an alle zusammen.
Und schon ist wieder ein Neuling im Forum, der nicht selber weiterkommt. Vielleicht erbarmt sich einer der schon wesentlich weiter ist als ich. Habe mir ein Code zusammengebaut der mir in einem EA den Spread auf 1 Kommastelle anzeigen soll. Aber er zeigt immer eine Null oder eine endloskommastelle an. Was ist da falsch? Der eingegebene Code lautet: double Spread =(Ask-Bid); double Spread1=Spreet *MarketInfo(Symbol(),MODE_TICKSIZE); double Spread2 = NormalizeDouble(Spreet1,2); string CommentText5= "Spreet = " + Spread2 +" Point"; // Text der im Chart erscheinen soll string CommentLabel5 = "Text auf dem Chart fünf"; // Erkennung ObjectCreate(CommentLabel5, OBJ_LABEL, 0, 0, 0 ); ObjectSet(CommentLabel5, OBJPROP_CORNER, 0); ObjectSet(CommentLabel5, OBJPROP_XDISTANCE, 150); // abstand von links ObjectSet(CommentLabel5, OBJPROP_YDISTANCE, 120 ); // abstand von oben ObjectSetText(CommentLabel5, CommentText5, 10, "Tahoma", Yellow ); // Schriftgröße, Art und Farbe . Im Voraus schon mal dem Antworter vielen Dank. |
|
|||
Hoppla, mit so einer schnellen Antwort habe ich nicht gerechnet.
Danke schön an Crashbulle. Mit nur Comment ging es nicht, da ich hier nicht die Position, Schrittgröße und Farbe wählen kann. Kann aber sein, dass es irgendwie doch geht nur weiß ich es nicht. Ebenfalls wusste ich nicht dass man den Spread über Marktinfo abrufen kann. Daher versuchte ich es mit der Abfrage Ask – Bid und wollte es dann in Voller Zahl mit einer Kommastelle umwandeln. Habe jetzt den Spread Teil gelöscht, und die erste Zeile umgearbeitet auf string CommentText5= "Spreet = " + MarketInfo(Symbol(),MODE_SPREAD) +" Point"; Und siehe es geht. Danke von dem Auszubildenden. |
|
|||
Und siehe es geht.
Leider nicht ganz zu meiner Zufriedenheit. Wenn der Broker 0.001/0.00001 die Kurse stellt. Aber mit 0.01/0.001 abrechnet passt die Komma Stelle nicht. Nach langen und viele Versuchen Klapte es mit der weiteren Eingaben. double Spread = MarketInfo(Symbol(),MODE_SPREAD); Tick_Groese = MarketInfo(Symbol(),MODE_TICKSIZE); if (Tick_Groese == 0.00001 || Tick_Groese ==0.001 ){ Spread = Spread /10; } if (Tick_Groese == 0.1 || Tick_Groese ==0.5 || Tick_Groese ==0.005 ){ Spread = Spread /10; } string CommentText5= "Spreet = " + Spread +" Point"; |
|
||||
Vielleicht dies hier Einbauen.
Bringt 5-Digit auf 4-Digit Nivaue. Damit läuft der EA ohne Probleme auf allen Digits. if (MarketInfo(Symbol(), MODE_PROFITCALCMODE) == 0) { if(Digits == 3 || Digits == 5) Multiplier = 10; if(Digits == 6) Multiplier = 100; if(Digits == 7) Multiplier = 1000; } Bloß beim einsetzen von Digitwerten (TP,usw), müssen Pips und keine Points/ Pipetten angeben werden. |
|
|||
Zitat:
Code:
//+------------------------------------------------------------------+ //| Spread_Points.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- Comment("Spread = ",IntegerToString(MarketInfo(Symbol(),MODE_SPREAD),0,' ')," Point = ",DoubleToString(MarketInfo(Symbol(),MODE_POINT),Digits())); } //+------------------------------------------------------------------+ |
|
|||
Danke schön, für Ihre Hilfe.
Bin nun wieder ein Stück weiter. Leider leuft er nicht so wie er sollte. Kann mir jemand bei der Fehlersuche helfen. Auch gegen ein kleines Honorar. |
|
|||
Nun, was genau! läuft denn noch nicht?
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Hallo
Hier das Erste Problem von 2, das ich einfach nicht Hinbekomme. Habe eine Funktion Eingebaut um wählen zu können: Feste Position Größe oder Berechnung nach Konto Größe. Bei GKFX und Charles FX werden nur Oder ausgeführt wenn ich eine feste Größe habe, jedoch nicht wenn ich die Größe Berechne lasse. Mit den gleichen EA und den Einstellungen läuft es aber Fehlerfrei bei Aktiv Traders. Und wiederum bei Q Trader läuft die Short Seite mit beiden Einstellungen aber nur mit fester Größe auf der Long Seite. extern double Lot_Long= 0.8;// Feste Ordergröße auf der Short Seite. extern bool Lot_Konto_Long= true; //Short Oder Größe nach Kontostand. extern double Max_Ver_Long =0.5; //Der Max Short Verlust je Order in %. extern double Lot_Short= 0.8;// Feste Ordergröße auf der Short Seite. extern bool Lot_Konto_Short = true; //Short Oder Größe nach Kontostand. extern double Max_Ver_Short =0.5; //Der Max Short Verlust je Order in %. //Alle Werte füt Kontogröße Berechen double Positions_Groesse; double Positions_Groesse_Long; double Positions_Groesse_Short; double Stop_Loss_Long, Stop_Loss_Short; double MeinePositionsGroesse; double MiniLot; double TickWert; double LotSchritt; double MiniLotWertjeTick; double MiniLotWertJePunkt; int Kerzen_Long =0; int Kerzen_Short =0; double Depotwert; double MaxVerlustinEuro; double MaxVerlustinEuro_Long; double MaxVerlustinEuro_Short; double EuroJePunkt; double H=0,L=0; double Lots_L, Lots_S; double Tick_Groese; //--------------------------------------------------------------------+ // Preis je kleinste Einheit auslesen, Grunddaten für Größe berechne. | //--------------------------------------------------------------------+ Depotwert = AccountBalance(); //Depotgröße ermitteln if (Lot_Konto_Long == true) { MaxVerlustinEuro_Long = (Depotwert /100) * Max_Ver_Long ; // Max. Verlust in Euro aus der angegebenen Prozentgröße Errechnen -- Beispiel 10.000 dav 2 % = 200€ } if (Lot_Konto_Short == true) { MaxVerlustinEuro_Short = (Depotwert /100) *Max_Ver_Short ; } Tick_Groese = MarketInfo(Symbol(),MODE_TICKSIZE); // DAX z.B. 0.5, bei JPY 0,01 EUR 0,0001 if (Tick_Groese == 0.00001 || Tick_Groese ==0.001 ){ Tick_Groese =0.1; } if (Tick_Groese == 0.5 ){ Tick_Groese =1; } //beim DAX if (Tick_Groese == 0.1 ){ Tick_Groese =1; } TickWert = MarketInfo(Symbol(),MODE_TICKVALUE); // Wert eines Ticks im DAX z.B. 12,5 Euro bei einem ganzen Lot MiniLot = MarketInfo(Symbol(),MODE_MINLOT); // kleinste handelbare Größe LotSchritt = MarketInfo(Symbol(),MODE_LOTSTEP); // Schrittgröße der Lots - //--------------------------------------------------------------------+ // Ordergröße Long | //--------------------------------------------------------------------+ if ((Lot_Konto_Long == true)&& (Long_zulassen==true)) { EuroJePunkt =MaxVerlustinEuro_Long /Stop_Loss_Long ; // maximaler ererlaubter Verlust je Punkt -- Beispiel 2,50 Euro MiniLotWertjeTick = TickWert * MiniLot; // 12,5 * 0,01 = 0,125 -- Sind also im DAX 12,5 Cent je halber Punkt MiniLotWertJePunkt = (1/Tick_Groese) * MiniLotWertjeTick; //Wert je Punkt bei einem Minilot im DAX 0.25 -- 25 Cent Positions_Groesse = (EuroJePunkt /MiniLotWertJePunkt)*LotSchritt; //Positionsgröße Berechnen Beispiel: 2,50/ 0,25 = 10 * 0,01 = 0,10 Positions_Groesse_Long =Positions_Groesse; Positions_Groesse_Long = NormalizeDouble(Positions_Groesse,2); // Auf 2 Nachkommastellen reduzieren. Lots_L =0; Lots_L= Positions_Groesse_Long ; } //--------------------------------------------------------------------+ // Ordergröße Short. | //--------------------------------------------------------------------+ if ((Lot_Konto_Short == true)&&(Short_zulassen==true)) { EuroJePunkt = MaxVerlustinEuro_Short /Stop_Loss_Short ; // maximaler ererlaubter Verlust je Punkt -- Beispiel 2,50 Euro MiniLotWertjeTick = TickWert * MiniLot; // 12,5 * 0,01 = 0,125 -- Sind also im DAX 12,5 Cent je halber Punkt MiniLotWertJePunkt = (1/Tick_Groese) * MiniLotWertjeTick; //Wert je Punkt bei einem Minilot im DAX 0.25 -- 25 Cent Positions_Groesse = (EuroJePunkt /MiniLotWertJePunkt)*LotSchritt; //Positionsgröße Berechnen Beispiel: 2,50/ 0,25 = 10 * 0,01 = 0,10 Positions_Groesse_Short =Positions_Groesse; Positions_Groesse_Short = NormalizeDouble(Positions_Groesse,2); // Auf 2 Nachkommastellen reduzieren. Lots_S =0; Lots_S= Positions_Groesse_Short ; } |
Lesezeichen |
Stichworte |
comment, mql4, programmierung, programmierung metatrader, text, text chart, text ea, text expert advisor |
|
|