Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Trendlinien automatisch zeichnen lassen (http://www.expert-advisor.com/forum/showthread.php?t=4809)

MA-EA 23.02.16 23:29

Weil nicht jeder auf die Idee kommt oder die Geduld hat.

Wie auch immer, ich könnt mir so einen EA ungefähr so
vorstellen:

Buy wenn:
-letztes High>voriges High und letztes Low>voriges Low
-Schließen wenn letztes High<voriges High und
letztes Low<voriges Low

Sell wenn:
-letztes High<voriges High und letztes Low<voriges Low
-Schließen wenn letztes High>voriges High und
letztes Low>voriges Low

Vielleicht noch nen Gleitenden Durschnitt und nen SL dazu.
Oder nen Trailing Stop oder was es alles gibt.

Ist aber nur ne ganz spontane Idee, ausserdem hab ich
Kopfschmerzen und es ist spät. :rolleyes: Keine Ahnung ob das
funktionieren könnte.

MA-EA 04.03.16 17:45

Hallo.

Eine ganz spontane Idee:

-Ein MA aufs High
-Ein MA aufs Low
-Ein flinker MA auf Close

-Close-MA und LastClose über beiden anderen GDs:Buy
-Close-MA und LastClose unter beiden anderen GDs:Sell

Beim Ausstieg bin ich noch nicht sicher. Vielleicht wenn der Close-GD und LC über/unter einem der anderen GDs, bzw. zwischen beiden anderen GDs sind.

RetepM 04.03.16 18:48

Liste der Anhänge anzeigen (Anzahl: 1)
Solche (Trend)linien kann man für viele Zwecke brauchen, BreakOut, Chartformationen. Eigentlich musst Du auch gar nicht zeichnen. Der EA braucht ja nur den Wert zu kennen, bei dem er etwas tun soll.

Ich habe mal aus einem EA (der auch malt :)) einen kleinen indikator gebastelt, mit dem Du 2 Trendlinien anlegen kannst. Vielleicht hilft es Dir ja.

@GenosseX
Bist Du der Kala... vom TradersClub?

MA-EA 05.03.16 02:16

Also ich würd jetzt mal spontan sagen:

Buy wenn:
-LC > CloseGD (gelb) & CloseGD > HighGD (blau)
-Close wenn LC < CloseGD (gelb) & CloseGD < HighGD (blau)

Sell wenn:
-LC < CloseGD (gelb) & CloseGD < HighGD (blau)
-Close wenn LC > CloseGD (gelb) & CloseGD > HighGD (blau)

Ich glaube, das könnte ganz gut funktionieren. Er würde bei den meisten Seitwärtsphasen vermutlich gar nicht erst einsteigen.

https://charts.mql5.com/10/425/usdch...rokers-ltd.png

MA-EA 05.03.16 22:13

Hallo.

Hier solls 2 Fehler geben.

Code:

//Globale Variablen
int MagicNumber = 541574052;
string Name = "Valerius 3GD Vola-EA";

extern int TimeFrame = 0;
extern string TimeFrames = "Current:0;M1:1; M5:5; M15:15; M30:30; H1:60; H4:240; D1:1440";

extern int CloseGD = 3;
extern int HighGD = 6;
extern int LowGD = 6;
extern int GD_Type = 0;
extern string GD_Types = "SMA:0; EMA:1; SMMA;2; LWMA:3";
int GD_Shift = 0;
extern double Lots = 0.01;
extern double Max Spread = 40.0;
extern int Slippage = 300;

int Ticket, i;
double PointSet;
//+------------------------------------------------------------------+
//| Expert initialization function                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
 
//---
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
 
  }
//+------------------------------------------------------------------+
//| Expert tick function                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
 
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
 
  }
//+------------------------------------------------------------------+
{
double AktuellerSpread = Ask-Bid;
double LC = iClose(Symbol(), TimeFrame, 1);
double CloseGD = iMA iClose;
double HighGD = iMA iHigh(Symbol(), TimeFrame, Fast_GD, GD_Shift, GD_Type, PRICE_CLOSE, 1);
double LowGD = iMA iLow (Symbol(), TimeFrame, Fast_GD, GD_Shift, GD_Type, PRICE_CLOSE, 1);

//Open Orders
if (AktuellerSpread <= Max Spread && LC > CloseGD && CloseGD > HighGD) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue);
if (AktuellerSpread <= Max Spread && LC < CloseGD && CloseGD < LowGD) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);

//Close Orders
if (LC < CloseGD && CloseGD < LowGD) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue), 0;
if (LC > CloseGD && CloseGD > LowGD) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue), 0;

return(0)
}


MA-EA 05.03.16 23:58

Jetzt gibts nur noch einen Fehler.

'{' - function definition unexpected

Code:

//Globale Variablen
int MagicNumber = 541574052;
string Name = "Valerius 3GD Vola-EA";

extern int TimeFrame = 0;
extern string TimeFrames = "Current:0;M1:1; M5:5; M15:15; M30:30; H1:60; H4:240; D1:1440";

extern int CloseGD = 3;
extern int HighGD = 6;
extern int LowGD = 6;
extern int GD_Type = 0;
extern string GD_Types = "SMA:0; EMA:1; SMMA;2; LWMA:3";
int GD_Shift = 0;
extern double Lots = 0.01;
extern double MaxSpread = 40.0;
extern int Slippage = 300;

int Ticket, i;
double PointSet;
//+------------------------------------------------------------------+
//| Expert initialization function                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
 
//---
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
 
  }
//+------------------------------------------------------------------+
//| Expert tick function                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
 
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
 
  }
//+------------------------------------------------------------------+
{
int start

if (Digits <= 3) PointSet = 0.01; else PointSet = 0.0001;
if (Digits <= 1) PointSet = 1;
Lots = MathMax(MathMin(Lots, MarketInfo(Symbol(),MODE_MAXLOT)),MarketInfo(Symbol(),MODE_MINLOT));

double AktuellerSpread = Ask-Bid;
double LC = iClose(Symbol(), TimeFrame, 1);
double CloseGD = iMA iClose;
double HighGD = iMA iHigh(Symbol(), TimeFrame, Fast_GD, GD_Shift, GD_Type, PRICE_CLOSE, 1);
double LowGD = iMA iLow (Symbol(), TimeFrame, Fast_GD, GD_Shift, GD_Type, PRICE_CLOSE, 1);

//Open Orders
if (AktuellerSpread <= Max Spread && LC > CloseGD && CloseGD > HighGD) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue);
if (AktuellerSpread <= Max Spread && LC < CloseGD && CloseGD < LowGD) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);

//Close Orders
if (LC < CloseGD && CloseGD < LowGD) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue), 0;
if (LC > CloseGD && CloseGD > LowGD) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue), 0;

return(0)
}


Raul0 06.03.16 00:42

{
int start



int start
{


oder?

ralfbenker 06.03.16 11:00

@MA-EA

Die Fehlermeldung sagt ja eigentlich schon was falsch ist, aber eben in englisch.

MA-EA 06.03.16 16:26

Wer findet die 8 Fehler, der bekommt nen tollen EA.

Code:

//Globale Variablen
int MagicNumber = 541574052;
string Name = "Valerius 3GD Vola-EA";

extern int TimeFrame = 60;
extern string TimeFrames = "Current:0;M1:1; M5:5; M15:15; M30:30; H1:60; H4:240; D1:1440";
extern int CloseGD = 3;
extern int HighGD = 6;
extern int LowGD = 6;
extern int GDType = 0;
extern string GDTypes = "SMA:0; EMA:1; SMMA;2; LWMA:3";
int GDShift = 0;
extern double Lots = 0.01;

extern int Slippage = 300;

extern int Ticket, i;
double PointSet;

//+------------------------------------------------------------------+
//| Expert initialization function                                  |
//+------------------------------------------------------------------+

int OnInit();
{
//---
 
//---
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
 
  }
 
{
int start()

if (Digits <= 3) PointSet = 0.01; else PointSet = 0.0001;
if (Digits <= 1) PointSet = 1;

double LC = iClose(Symbol(), TimeFrame, 1);
double CloseGD = iMA(Symbol(), TimeFrame, CloseGD, GDShift, GDType, PRICE_CLOSE, 1);
double HighGD = iMA(Symbol(), TimeFrame, HighGD, GDShift, GDType, PRICE_HIGH, 1);
double LowGD = iMA(Symbol(), TimeFrame, LowGD, GDShift, GDType, PRICE_LOW, 1);


//Open Orders
{
if (LC>CloseGD && CloseGD>HighGD) OrderSend(Symbol(), OP_BUY, (Lots, Ask, Slippage, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 1,  Blue));
if (LC<CloseGD && CloseGD<LowGD) OrderSend(Symbol(), OP_SELL, (Lots, Bid, Slippage, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 1,  Red));
}

{
int OrderSelect(SELECT_BY_TICKET);
}
//Close Orders
{
if (LC<CloseGD && CloseGD<HighGD) OrderClose(Symbol(), OP_BUY, (Lots, Bid, Slippage, ), Blue,)) ;
if (LC>CloseGD && CloseGD>LowGD) OrderClose(Symbol(), OP_SELL, (Lots, Ask, Slippage, ), Red,)) ;
}

int return();
}


MA-EA 06.03.16 22:05

Jetzt sind es nur noch 4 Fehler.
Code:

//Globale Variablen
int MagicNumber = 541574052;
string Name = "Valerius3GDVolaEA";

extern int TimeFrame = 60;
extern string TimeFrames = "Current:0;M1:1; M5:5; M15:15; M30:30; H1:60; H4:240; D1:1440";
extern int CloseGD = 3;
extern int HighGD = 6;
extern int LowGD = 6;
extern int GDType = 0;
extern string GDTypes = "SMA:0; EMA:1; SMMA;2; LWMA:3";
int GDShift = 0;
extern double Lots = 0.01;

extern int MaxSpread = 40;
extern int Slippage = 300;

extern int Ticket, i;
double PointSet;
//+------------------------------------------------------------------+
//| Expert initialization function                                  |
//+------------------------------------------------------------------+

int OnInit(){
return(0);
}

double Spread=Ask-Bid;{
}

double LC = iClose(Symbol(), TimeFrame, 1);
double CGD = iMA(Symbol(), TimeFrame, CloseGD, GDShift, GDType, PRICE_CLOSE, 1);
double HGD = iMA(Symbol(), TimeFrame, HighGD, GDShift, GDType, PRICE_HIGH, 1);
double LGD = iMA(Symbol(), TimeFrame, LowGD, GDShift, GDType, PRICE_LOW, 1);

{
int OrderSelect(SELECT_BY_TICKET);
if (OrderSend(Symbol(),0,Lots,Ask,0,magic,0,clrNONE)==true)
}

//Open Orders

if (Spread <= MaxSpread && LC>CGD && CGD>HGD)
OrderSend(Symbol(), OP_BUY, (Lots, Ask, Slippage, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 1, Blue);{
}

if (Spread <= MaxSpread && LC<CGD && CGD<LGD)
OrderSend(Symbol(), OP_SELL, (Lots, Bid, Slippage, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 1, Red);{
}

//Close Orders
if(OrderSelect)(SELECT_BY_TICKET)

if (LC<CGD && CGD<HGD)
OrderClose(Symbol(), OP_BUY, (Lots, Bid, Slippage, ), Blue,);{
}

if (LC>CGD && CGD>LGD)
OrderClose(Symbol(), OP_SELL, (Lots, Ask, Slippage, ), Red,);{
}

return(0);{
}



Alle Zeitangaben in WEZ +2. Es ist jetzt 14:53 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum