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

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

Empfehlungen

Like Tree5Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #261 (permalink)  
Alt 12.10.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 199
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

@MA_EA:
Achso, hab ich dann falsch verstanden. Aber zwei Tage ist viel zu kurz. Pack den EA mal auf ne VPN und lass ihn ein paar Monate laufen. Dann hast Du statistische Ergebnisse mit denen man was anfangen kann.

@Kronenchakra:
Die Strategie mit den 3 Durchschnitten ist so neu nicht, hat man auch schnell automatisiert. Nur macht man in der Regel während der vielen Seitwärtsphasen mehr Verlust als in den Trendphasen Gewinn denke ich.
  #262 (permalink)  
Alt 17.10.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Hab seit einiger Zeit Versuche unternommen,
den Abstand zwischen Kurs und GDs und auch
zwischen GDs zu verkürzen.

1. hab ich den Abstand zwischen dem Open
des Kurses und denen der GDs ausrechnen lassen.
Diese dann zu den Close Werten der GDs
dazu addiert. Aber wer weiß, ob die
Open Kurse ein guter Anhaltspunkt sind?

2. hab ich High + Close + Low Bar 1
ausrechnen lassen. Für den Kurs und
für die 2 bzw. 3 GDs. Dann die Abstände
zwischen diesen Durchschnitten (Typical Price)
der Kurseund GDs ausgerechnet.
Die Ergebnisse dann zu den Close Werten
der GDs dazu addiert. Denke, dass das besser
ist, weil der Typical Price mehr
aussagt. Ausserdem wird dann Alles
noch mal ein kleines Bißchen geglättet.
Ist allerdings wieder mehr Arbeit.

Aber irgendwie muss es ja möglich sein,
den Kurs zu glätten, ohne dass die GDs
stundenlang hinter her hinken.

Dann hab ich mal gelesen, dass man
Werte einfach mit bestimmten anderen
Werten ersetzen kann. Was mich wieder
über die Shift Funktion von GDs nachdenken
lässt...
  #263 (permalink)  
Alt 18.10.16
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Der schnellste GD den ich gefunden habe und auch verwende.
Ist halt für den MT5, aber gibt's sicher auch für MT4.
Ist sogar die Berechnungsmethode angegeben! Seltenheit!

Code:
//+------------------------------------------------------------------+
//|                                              ZeroLag_MA_Mono.mq5 | 
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
//| Formula:                                                         | 
//| ZeroLAG MA(i) = 2*MA(Price, P1, i) - MA(MA( Price, P1, i), P2, i)|
//+------------------------------------------------------------------+

#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#property description "An attempt to create the moving average with zero lag"
#property version   "1.00"
#property indicator_chart_window 

#property indicator_buffers 2 
#property indicator_plots   1

#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
#property indicator_label1  "ZeroLag_MA_Mono"

#include <SmoothAlgorithms.mqh> 

CXMA XMA1,XMA2;

input Smooth_Method MA_Method1=MODE_EMA_;
input int Length1=5;             
input int Phase1=5;

input Smooth_Method MA_Method2=MODE_EMA_;
input int Length2=5; 
input int Phase2=5; 

input Applied_price_ IPC=PRICE_TYPICAL_;  // Anwenden auf Preis

input int Shift=0;
input int PriceShift=0;

double ZeroLAG_MA[];


double dPriceShift;

int min_rates_total, min_rates_1, min_rates_2;

void OnInit()
  {
   min_rates_1=XMA1.GetStartBars(MA_Method1, Length1, Phase1);
   min_rates_2=XMA2.GetStartBars(MA_Method2, Length2, Phase2);
   
   min_rates_total=min_rates_1+min_rates_2+1;

   XMA1.XMALengthCheck("Length1", Length1);
   XMA2.XMALengthCheck("Length2", Length2);

   XMA1.XMAPhaseCheck("Phase1", Phase1, MA_Method1);
   XMA2.XMAPhaseCheck("Phase2", Phase2, MA_Method2);

   dPriceShift=_Point*PriceShift;

   SetIndexBuffer(0,ZeroLAG_MA,INDICATOR_DATA);

   PlotIndexSetInteger(0,PLOT_SHIFT,Shift);
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total);
   PlotIndexSetDouble (0,PLOT_EMPTY_VALUE,EMPTY_VALUE);

   string shortname;
   string Smooth1=XMA1.GetString_MA_Method(MA_Method1);
   string Smooth2=XMA1.GetString_MA_Method(MA_Method2);
   StringConcatenate(shortname,"ZeroLag_MA_Mono(",Length1,", ",Length2,", ",Smooth1,", ",Smooth2,")");

   IndicatorSetString (INDICATOR_SHORTNAME,shortname);
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
  }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {

   if(rates_total<min_rates_total) return(0);

   double price,x1xma,x2xma;

   int first,bar;

   if(prev_calculated>rates_total || prev_calculated<=0)
      first=0;
   else 
      first=prev_calculated-1;

   for(bar=first; bar<rates_total && !IsStopped(); bar++)
     {
      price=PriceSeries(IPC,bar,open,low,high,close);

      x1xma=XMA1.XMASeries(0          ,prev_calculated,rates_total,MA_Method1,Phase1,Length1,price,bar,false);
      x2xma=XMA2.XMASeries(min_rates_1,prev_calculated,rates_total,MA_Method2,Phase2,Length2,x1xma,bar,false);
      ZeroLAG_MA[bar]=2*x1xma-x2xma+dPriceShift;
     }

   return(rates_total);
  }
LG
  #264 (permalink)  
Alt 19.10.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hat Jemand Tips bezügl. einem 3 GD System?
SMA, 1H, FX. Hab schon

3 6 9
3 6 10
3 6 12
4 9 18

versucht. Hat irgendwie Alles nicht so richtig überzeugt.

Weiß Jemand wie sich der M15 macht?
  #265 (permalink)  
Alt 19.10.16
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

3 GDs, find ich recht gut, aber nicht mit SMAs
https://www.youtube.com/watch?v=0aFa...Is-GA&index=10
Bin draufgekommen daß mein Indi ident zum DEMA (Double Exponential MA) ist.
LG
  #266 (permalink)  
Alt 07.11.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Irgendwo kommen Ein- und Ausstiegs-Bedingungen sich in
die Quere, so dass irgendwie haufenweise Trades geöffnet und kurz danach wieder geschlossen werden.

Code:
//Kurs
double HP1 = iHigh(Symbol(), TimeFrame, 1);
double CP1 = iClose(Symbol(), TimeFrame, 1);
double CP2 = iClose(Symbol(), TimeFrame, 2);
double LP1 = iLow(Symbol(), TimeFrame, 1);

//GDs
double H_MA = iMA(Symbol(), TimeFrame, High_MA, GD_Shift, GD_Type, PRICE_HIGH, 1);
double C_MA = iMA(Symbol(), TimeFrame, Close_MA, GD_Shift, GD_Type, PRICE_CLOSE, 1);
double L_MA = iMA(Symbol(), TimeFrame, Low_MA, GD_Shift, GD_Type, PRICE_LOW, 1);
Code:
//Open Trade
if (!IsInvested){
if (TC>F && TC<T && S<=MS && CP1>C_MA && LP1>L_MA) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue);
if (TC>F && TC<T && S<=MS && CP1<C_MA && HP1<H_MA) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);}
//-------------------------------------------------------------------------------------------------------------

//Close Trade
if (IsInvested){
for (i=OrdersTotal()-1; i>=0; i--){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){

if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){
if((CP1<C_MA && LP1<L_MA) || (CAA=true && TC>CA) || (CLTF=true && CP1<CP2 && O_P<0.0)) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);}

if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){
if((CP1>C_MA && HP1>H_MA) || (CAA=true && TC>CA) || (CLTF=true && CP1>CP2 && O_P<0.0)) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}}
  #267 (permalink)  
Alt 07.11.16
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Wahrscheinlich liegt es an der Variablen IsInvested, die wird nirgendwo verändert.
In MQL5 könnte man mit PositionSelect(_Symbol) feststellen ob eine Pos offen ist.
LG Otto
  #268 (permalink)  
Alt 08.11.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hab wohl eher nen paar Bedingungen verdreht. Jetzt funkts.
Jedenfalls wird nur noch zu jeder vollen H getradet.

Allerdings bin ich beim Ausstieg nicht sicher.
Derzeit wird ein Buy gemacht, wenn

Close>Close GD und
High>High GD

Ich denke man müsste schon schließen, wenn

High<High GD.

Bis jetzt muss auch Close<Close GD sein, um einen Buy
zu closen. Aber ich glaub, das ist zu spät.

  #269 (permalink)  
Alt 14.01.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Moin.

Im Anhang mal ein Versuch. Will im BT nicht traden. Müsste aber eigentlich funktionieren. Kann aber nix versprechen. Ist wie gesagt ein Test.

Wär dankbar wenn Ihr mal bei Euch testen und sagen könntet, ob er überhaupt tradet. Und wenn ja wie gut/schlecht.
Angehängte Dateien
Dateityp: ex4 Valerius_3MA_B1B5UD_CLTF_EA_Metatrader4.ex4 (14,7 KB, 0x aufgerufen)
  #270 (permalink)  
Alt 18.01.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

2 kurze Fragen:

1. Wer benutzt hier alles EAs?
2. Wie vermeidet Ihr es, dass der nach Auslösen des Notstopps gleich wieder ne Order öffnet?
Angehängte Dateien
Dateityp: mq4 Valerius_2MA_CLTF_EA_MT4.mq4 (5,3 KB, 0x aufgerufen)
Thema geschlossen

Lesezeichen

Stichworte
expert advisor, gleitender durchschnitt, mql4, programmierung, programmierung metatrader, programmierung mql4, trading

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 12:51 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.
-----------------------------------------------------------------------------------------------------------------------------