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: 43249
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 02.04.17
Mitglied
 
Registriert seit: Mar 2014
Beiträge: 39
Richi777 befindet sich auf einem aufstrebenden Ast
Standard Horizontale Linie bewegen lassen, wie eine Trailing Stoploss?

Hallo nochmal,

ja ja...ich und meine Linien ....

Für meinen letzten Schritt sollte meine vorgegebene HLine sich bewegen wie ein Trailing Stoploss. Also nur in einer von mir bestimmten Richtung. Wenn der Kurs in die gegengesetzen Richung läuft sollte die Linie stehen bleiben.
Ich habe zwar was versucht mit "High[0]" aber nach jeder neuen Kerze wird der Wert neu berechnet und verschiebt meine Linie, was nicht sein sollte.
Ich weis dass es Codes gibt für Trailing Stoploss gibt und könnte mit Sicherheit die Linie damit ankoppeln aber das sollte gerade nicht sein. Denn wenn keine Order geöffnet ist, würde das nicht funktionieren. Die Hline solle unabhängig von einer geöffneten Order sich nur in einer Richtung bewegen. Momentan stehe ich auf den Schlauch und komme da nicht weiter. für Hilfe wäre ich wieder sehr dankbar.

Gruß Richi
  #2 (permalink)  
Alt 03.04.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

hi,
der Code, den ich Dir letztens geschrieben habe, war im Prinzip ein (EA-interner) Trailing-Stop. Du must jetzt nur noch den gewünschten Abstand hinzu- bzw. abrechnen...
Wenn der Kurs dann durch die Linie geht, machst Du einen OrderClose.
  #3 (permalink)  
Alt 04.04.17
Mitglied
 
Registriert seit: Mar 2014
Beiträge: 39
Richi777 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Adlerauge Beitrag anzeigen
PHP-Code:
extern color             Deine_Lieblings_Farbe       clrBlue;
extern ENUM_LINE_STYLE   Dein_Lieblings_Linienstil   STYLE_SOLID;
enum LinienRichtung
    
{
     
rauf   0// Linie trailt nach oben
      
runter 1// Linie trailt nach unten
    
};
extern LinienRichtung Linien_Richtung 1;

double Aktueller_LinienPreis Bid;

void OnTick()
  {
   
ObjectDelete("Bid-Linie");
    
   if (
Linien_Richtung == 0)
     {
      if (
Aktueller_LinienPreis Bid)
         
Aktueller_LinienPreis Bid;
     }
   if (
Linien_Richtung == 1)
     {
      if (
Aktueller_LinienPreis Bid)
         
Aktueller_LinienPreis Bid;
     }
   
ObjectCreate(NULL,"Bid-Linie",OBJ_HLINE,0,1,Aktueller_LinienPreis);
    
ObjectSetInteger(NULL,"Bid-Linie",OBJPROP_COLOR,Deine_Lieblings_Farbe);
     
ObjectSetInteger(NULL,"Bid-Linie",OBJPROP_STYLE,Dein_Lieblings_Linienstil);
  } 
Viel Spass damit ;-)
Meinst Du das?
Ich habe das versucht aber irgendwie bewegt sich die Line trotzdem in beiden Richtungen. Irgend etwas muss ich da wohl verkehrt gemacht oder falsch verstanden haben
  #4 (permalink)  
Alt 06.04.17
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Mal ne Frage, wieso löscht du die Linie jedesmal um sie dann neu zu erzeugen?
Wieso nutzt du nicht einfach ObjectMove?
  #5 (permalink)  
Alt 06.04.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von next user Beitrag anzeigen
Mal ne Frage, wieso löscht du die Linie jedesmal um sie dann neu zu erzeugen?
Wieso nutzt du nicht einfach ObjectMove?
Das ist eine sehr berechtigte Frage, zumal nicht nur beim Wandern der Linie diese jedes mal erst gelöscht und dann wieder erzeugt wird, sondern auch ohne dass sich die Linie bewegt, wird sie mit jedem Tick gelöscht und wieder gesetzt.

Das ist zwar alles möglich, aber im Endeffekt ressourcenfressend und ein optimierbarer Codingstil.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 06.04.17
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Jap. Generell würde ich bei OnTick() wenn überhaupt, dann nur nach Abfragen benötigter Vorraussetzungen ein Object erstellen.
Hier allerdings nicht nötig. Wäre ungefähr so:
Code:
void OnTick()
{
if (Linien_Richtung == 0)
  {
      if (Aktueller_LinienPreis < Bid)
      {
         Aktueller_LinienPreis = Bid;
         ObjectMove(0,"Bid-Linie",0,0,Aktueller_LinienPreis);
      }   
  }
if (Linien_Richtung == 1)
  {
      if (Aktueller_LinienPreis > Bid)
      {
         Aktueller_LinienPreis = Bid;
         ObjectMove(0,"Bid-Linie",0,0,Aktueller_LinienPreis);
      }   
  }
}
  #7 (permalink)  
Alt 07.04.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

@nextuser: gegen Deine Lösung habe ich nichts einzuwenden...

@richi777: wenn die Linie bei Dir in beide Richtungen trailt, hast Du irgendeinen Fehler gemacht... ich kann aber nicht hellsehen, welchen.
  #8 (permalink)  
Alt 07.04.17
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Hi Adlerauge,

soweit ich es richtig verstanden habe ist der Codeabschnitt von dir.
Ich wollte dich nur fragen, wieso hast du ein Aufzählung genommen und nicht einfach eine Bool-Variable? Immerhin geht es hier ja nur um 2 Zustände.
  #9 (permalink)  
Alt 07.04.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

Das funktioniert natürlich auch mit einer bool-Variablen.
Dann wird aber beim Starten des EA in der Eingabemaske aber nur "true" und "false" als Auswahlmöglichkeit angezeigt.
Bei einer Aufzählung hingegen wird angezeigt, was man im Code in der Zeile als Kommentar hinter die beiden Slashes geschrieben hat.
Ist netter ..))) ...und selbsterklärender.
Ausserdem war es als anpassbare und erweiterbare Vorlage gedacht.
  #10 (permalink)  
Alt 07.04.17
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Cool. Das mit dem angezeigten Kommentar ist mich ehrlich gesagt noch nie aufgefallen. Dann ist deine Variante ja echt besser
Thema geschlossen

Lesezeichen

Stichworte
hline, horizontale line, horizontale linie, linie, mql4, programmierung, programmierung metatrader, programmierung mql4, stop, trailing, trailingstop

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 20:24 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.
-----------------------------------------------------------------------------------------------------------------------------