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: 4972
Beiträge: 43252
Benutzer: 7.216
Aktive Benutzer: 84
Links: 84
Wir begrüßen unseren neuesten Benutzer: bb1107
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Tagen
- bb1107
vor einer Woche
- rg-trader
vor 2 Wochen
- toshistyle
vor 2 Wochen
- Robin
vor 3 Wochen
- mMmaanu

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 16.11.14
Neues Mitglied
 
Registriert seit: Nov 2014
Beiträge: 26
Auszubildender befindet sich auf einem aufstrebenden Ast
Standard 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.
  #2 (permalink)  
Alt 16.11.14
Benutzerbild von Crashbulle
Elite Mitglied
 
Registriert seit: Sep 2011
Ort: Voreifel
Beiträge: 584
Crashbulle befindet sich auf einem aufstrebenden Ast
Crashbulle eine Nachricht über MSN schicken Crashbulle eine Nachricht über Skype™ schicken
Standard

Hallo Auszubildender,

schön das du hier das Forum beglückst.

Ich verstehe deun Spread1, Spread2 und Spreed nicht.

Ich laß mir über MT4-Routinen dies über Comment anzeige:

aktueller Spread = ", MarketInfo(Symbol(), MODE_SPREAD),


Über dierse Mode_ -Funktion lassen sich noch andere schöne Sachen anzeigen !

Crashbulle
__________________
Was hoch aufsteigt, fällt tief herunter
Portfolio
Portfolio_1
  #3 (permalink)  
Alt 16.11.14
Neues Mitglied
 
Registriert seit: Nov 2014
Beiträge: 26
Auszubildender befindet sich auf einem aufstrebenden Ast
Standard

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.
  #4 (permalink)  
Alt 16.11.14
Benutzerbild von Crashbulle
Elite Mitglied
 
Registriert seit: Sep 2011
Ort: Voreifel
Beiträge: 584
Crashbulle befindet sich auf einem aufstrebenden Ast
Crashbulle eine Nachricht über MSN schicken Crashbulle eine Nachricht über Skype™ schicken
Standard

War gerade zwischen den verschiedenen Foren an switchen und hatte es gelesen.
__________________
Was hoch aufsteigt, fällt tief herunter
Portfolio
Portfolio_1
  #5 (permalink)  
Alt 16.11.14
Neues Mitglied
 
Registriert seit: Nov 2014
Beiträge: 26
Auszubildender befindet sich auf einem aufstrebenden Ast
Lightbulb

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";
  #6 (permalink)  
Alt 16.11.14
Benutzerbild von Crashbulle
Elite Mitglied
 
Registriert seit: Sep 2011
Ort: Voreifel
Beiträge: 584
Crashbulle befindet sich auf einem aufstrebenden Ast
Crashbulle eine Nachricht über MSN schicken Crashbulle eine Nachricht über Skype™ schicken
Standard

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.
__________________
Was hoch aufsteigt, fällt tief herunter
Portfolio
Portfolio_1
  #7 (permalink)  
Alt 16.11.14
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Auszubildender Beitrag anzeigen
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";
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()));
  }
//+------------------------------------------------------------------+
Angehängte Grafiken
Dateityp: jpg Unbenannt.jpg (21,4 KB, 18x aufgerufen)
  #8 (permalink)  
Alt 17.11.14
Neues Mitglied
 
Registriert seit: Nov 2014
Beiträge: 26
Auszubildender befindet sich auf einem aufstrebenden Ast
Smile

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.
  #9 (permalink)  
Alt 17.11.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.732
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nun, was genau! läuft denn noch nicht?
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #10 (permalink)  
Alt 18.11.14
Neues Mitglied
 
Registriert seit: Nov 2014
Beiträge: 26
Auszubildender befindet sich auf einem aufstrebenden Ast
Standard

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 ;
}
Thema geschlossen

Lesezeichen

Stichworte
comment, mql4, programmierung, programmierung metatrader, text, text chart, text ea, text expert advisor

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 06:18 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.
-----------------------------------------------------------------------------------------------------------------------------