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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3369
Beiträge: 33895
Benutzer: 5.359
Aktive Benutzer: 610
Links: 79
Wir begrüßen unseren neuesten Benutzer: ko9alamarc
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 4 Stunden
- ko9alamarc
vor 12 Stunden
- opportunit...
vor 14 Stunden
- ciena
vor einem Tag
- Mogelbaum
vor 2 Tagen
- romahanove...

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 51
Gesamt: 53
Team: 0
Team:  
Benutzer:  mawini, michaelf
Freunde anzeigen

Empfehlungen

Werbung

Like Tree5Likes
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #261 (permalink)  
Alt 12.10.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 193
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.
Mit Zitat antworten
  #262 (permalink)  
Alt 17.10.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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...
Mit Zitat antworten
  #263 (permalink)  
Alt 18.10.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 122
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
Mit Zitat antworten
  #264 (permalink)  
Alt 19.10.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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?
Mit Zitat antworten
  #265 (permalink)  
Alt 19.10.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 122
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
Mit Zitat antworten
  #266 (permalink)  
Alt vor 4 Wochen
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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);}}}}
Mit Zitat antworten
  #267 (permalink)  
Alt vor 4 Wochen
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 122
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
__________________
Das Gras wächst nicht schneller, wenn man daran zieht
Mit Zitat antworten
  #268 (permalink)  
Alt vor 4 Wochen
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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.

Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
auftrag, biete, ea, expert advisor, gleitender durchschnitt, kleinanzeigen, suche


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 11:44 Uhr.



-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2016 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2016 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------