Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 21.01.15
Benutzerbild von markusrgb
markusrgb markusrgb ist offline
Mitglied
 
Registriert seit: Jan 2015
Beiträge: 34
markusrgb befindet sich auf einem aufstrebenden Ast
Standard Fehler im Code ... finde keine Lösung

hallo zusammen,

Evtl könnt ihr mir ja weiter helfen ...

ich versuche mich jetzt seit ein paar wochen auch mal im Programmieren mit denn EA´s

hab vor kurzen im Netz mal ne Anleitung für einen Code gefunden und hab denn auch gleich mal ausprobieren wollen .... dort scheint er auch gut zu funktioneren
nur leider bei mir nicht

Benutze denn MetaTrader 4
Version 4.00 Build 765 (12Dez 2014)
mit dem MetaEditor
Version 5.00 Build 1035 (11Dez 2014)

bin mir sicher das ich alles richtig geschrieben hab, habs auch mehrmals kontrolliert und auch selber schon ein bishen dran rumgebastelt
aber bekomm es einfach nicht zum laufen

könnte mir vieleicht jemad einen Hinweis geben was daran nicht stimmt?

habe 5 FehlerMeldungen und 2 Warnungen:

'StoppLoss' - undeclared identifier dax test 1.mq4 175 7
possible loss of data due to type conversion dax test 1.mq4 175 17
'OrderAngepasst' - undeclared identifier dax test 1.mq4 176 7
'OrderAngepasst' - undeclared identifier dax test 1.mq4 186 7
'TakeProfit' - undeclared identifier dax test 1.mq4 195 7
possible loss of data due to type conversion dax test 1.mq4 195 18
'OrderAngepasst' - undeclared identifier dax test 1.mq4 196 7
5 error(s), 2 warning(s)



Code:
//+------------------------------------------------------------------+
//|                                                   Signal Dax.mq4 |
//|                                                              xxx |
//|                                             https://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright "xxx"
#property link      "https://www.mql4.com"
#property version   "1.00"
#property strict

//+------------------------------------------------------------------+
// --- Variablen vom Benutzer Festlegen: (Global)
//+------------------------------------------------------------------+
extern double HandelsLots = 0.1; // Größe der Handels Lots
extern double SL_Prozent = 0.5; // StopLoos in Prozent
extern double TP_Prozent = 1.5; // TakeProfit in Prozent
extern int MagicNummer = 12345;
//+------------------------------------------------------------------+
// --- Variablen fest Festlegen: (Global)
//+------------------------------------------------------------------+
datetime PeriondenStartZeit; // zum feststellen einer neuen Perionde
bool NeuePeriodeBegonnen;
bool LongSignal;
bool ShortSignal;
int LongOrder;
int ShortOrder;


// --- String für Dax30 festlegen
string syDax = "EUREX.FDX";

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   PeriondenStartZeit = Time[0];
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function - Ausführen beim Ende von EA    |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
   
  }
//+------------------------------------------------------------------+
//| Expert tick function  (StartZeit                                           |
//+------------------------------------------------------------------+
void OnTick()
{
//---

// Überprüfen ob ein neuer Periodenbeginn vorliegt
if (PeriondenStartZeit != Time[0])
{
NeuePeriodeBegonnen = true;
PeriondenStartZeit = Time[0];
}
else NeuePeriodeBegonnen = false;

   
// --- MA20 für Dax Abfragen 
double maDAX = iMA(syDax,0,20,0,MODE_SMA,PRICE_CLOSE,0);


// ---Aktuellen BID Kurs für Dax Abfragen (letzter Kurs?)
double bidDax  = MarketInfo(syDax, MODE_BID);



// Anzeige auf Bildschirm 
Print("DAX 30 MA Kurve =",maDAX);  


//+------------------------------------------------------------------+
//| HandelsSignale ermitteln                                         |
//+------------------------------------------------------------------+  


if (NeuePeriodeBegonnen == true)
{ 

     //  --- Kauf Signal --- 

     if (bidDax>maDAX)
     {
     LongSignal = true;
     }
     else LongSignal = false;

     // --- Verkauf Signal ---

     if (bidDax<maDAX)
     {
     ShortSignal = true;
     }
     else ShortSignal = false;
}
else
{
LongSignal = false;
ShortSignal = false;
}


//+------------------------------------------------------------------+
//| Kauf / Verkauf Signal umsetzen                                   |
//+------------------------------------------------------------------+  
 
// Kaufen
if(LongSignal == true)
{
       // Evtl Short Order vorher Schließen
       if(ShortOrder>0)
          {
             if(OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
             {
             bool ShortOrderGeschlossen = OrderClose(ShortOrder,OrderLots(),Ask,10,Blue);
             if (ShortOrderGeschlossen==true) ShortOrder=0;
             } 
          }
       // Jetzt erst Long Order eröffnen
       while(LongOrder<=0)
           {
           LongOrder = OrderSend(syDax,OP_BUY,HandelsLots,Ask,10,0,0,"Dax30 LONG",MagicNummer,0,Green);
           }
}

// Verkaufen
if (ShortSignal == true)
{
      // Evtl Long Order vorher Schließen
     if (LongOrder>0)
        {
           if(OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
           {
           bool LongOrderGeschlossen = OrderClose(LongOrder,OrderLots(),Bid,10,Blue);
           if (LongOrderGeschlossen==true) LongOrder=0;
           }
        }
      // Verkaufs Order jetzt eröffnen
      while(ShortOrder<=0)
         {
         ShortOrder = OrderSend(syDax,OP_SELL,HandelsLots,Bid,10,0,0,"Dax30 SHORT",MagicNummer,0,Red);
         }
}

//+------------------------------------------------------------------+
//|StopLoos und TakeProfit setzen                                   |
//+------------------------------------------------------------------+  
 


// SL bei Long Deals setzen
if (OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
{
    if(OrderCloseTime()==0 && OrderStopLoss()==0)
      {
      double StoppLoss = NormalizeDouble(OrderOpenPrice()/(1+(SL_Prozent/100)),Digits);
      bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StoppLoss,OrderTakeProfit(),0,Yellow);
      }
}

// SL bei Short Deals setzen
if (OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
{
    if(OrderCloseTime()==0 && OrderStopLoss()==0)
      {
      StoppLoss = NormalizeDouble(OrderOpenPrice()*(1+(SL_Prozent/100)),Digits);
      OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StoppLoss,OrderTakeProfit(),0,Yellow);
      }
}

// TP bei Long Deals setzen
if (OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
{
    if(OrderCloseTime()==0 && OrderTakeProfit()==0)
      {
      double TakeProfit = NormalizeDouble(OrderOpenPrice()*(1+(TP_Prozent/100)),Digits);
      OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TakeProfit,0,Orange);
      }
}

// TP bei Short Deals setzen
if (OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
{
    if(OrderCloseTime()==0 && OrderTakeProfit()==0)
      {
      TakeProfit = NormalizeDouble(OrderOpenPrice()/(1+(TP_Prozent/100)),Digits);
      OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TakeProfit,0,Orange);
      }
}

// Ticketnummern nach schließen auf 0 zurücksetzen
if(OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
{
   if(OrderTicket()>0 && OrderCloseTime()>0) LongOrder=0;
}

if(OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
{
   if(OrderTicket()>0 && OrderCloseTime()>0) ShortOrder=0;
}


//+------------------------------------------------------------------+
}
für Hilfe währ ich dankbar