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: 43251
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: 658
Gesamt: 658
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree1Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 21.01.15
Benutzerbild von markusrgb
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

quickmick likes this.
  #2 (permalink)  
Alt 22.01.15
Benutzerbild von markusrgb
Mitglied
 
Registriert seit: Jan 2015
Beiträge: 34
markusrgb befindet sich auf einem aufstrebenden Ast
Exclamation link

denn Code hab ich übrigens hier gefunden:


https://www.youtube.com/watch?v=nQFB...ghzenyeOw_Y68T

bin mir nicht ganz sicher ob das Problem evtl an meiner
MetaEditor Version 5.00 Build 1035 liegt

mich würde auch mal Interessieren ob der Code bei jemand anderem Funktioniert
möchte das Problem schon gerne gelöst haben ... würde nämlich gerne damit weiter arbeiten und ihn dann noch weiter ausbauen

  #3 (permalink)  
Alt 22.01.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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()
{
//---

double StoppLoss;
double TakeProfit;
bool OrderAngepasst;

// Ü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)
      {
      StoppLoss = NormalizeDouble(OrderOpenPrice()/(1+(SL_Prozent/100)),Digits);
      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)
      {
      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;
}


//+------------------------------------------------------------------+
}
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #4 (permalink)  
Alt 22.01.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Dann nimm das hier:

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()
{
//---
double StoppLoss;
double TakeProfit;
bool OrderAngepasst;


// Ü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)
      {
      StoppLoss = NormalizeDouble(OrderOpenPrice()/(1+(SL_Prozent/100)),Digits);
      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)
      {
      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;
}


//+------------------------------------------------------------------+
}
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 23.01.15
Benutzerbild von markusrgb
Mitglied
 
Registriert seit: Jan 2015
Beiträge: 34
markusrgb befindet sich auf einem aufstrebenden Ast
Standard

Super danke, hat funktioniert - jetzt weis ich auch woran es wohl lag

Mich würde aber schon noch interessieren ob es MetaEditor Versionen gibt bei denen der ursprüngliche Code so funktioniert hätte

Hatte sowas schon mal

Zb. Find ich manchmal folgende Schreibweise vor:

Double variable1; variable2; variable3

das Funktioniert so bei meiner Version allerdings nicht

Double variable1;
Double variable2;
Double variable3;

Hingegen schon
  #6 (permalink)  
Alt 23.01.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Double variable1; variable2; variable3

funtioniert schon deshalb nicht, weil Double double und das ; ein , sein muß. Und wenn, dann würde diese Schreibweise funktionieren:

double variable1, variable2, variable3;

Das:

Double variable1;
Double variable2;
Double variable3;

geht auch nicht, s.o., sondern:

double variable1;
double variable2;
double variable3;


traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 26.01.15
Benutzerbild von markusrgb
Mitglied
 
Registriert seit: Jan 2015
Beiträge: 34
markusrgb befindet sich auf einem aufstrebenden Ast
Standard

ok, Komma anstatt Semicolon ...

das mit der Kleinschreibung war mir eigentlich klar ... nur die Autokorrektur am Handy macht halt immer was sie will


Hab meinen EA jetzt mal auf dem DemoKonto im Testbetrieb laufen
dabei fällt mir auf dass das mit dem TP/SL setzen nicht funktioniert

bekomm bei jedem Tick folgende Fehlermeldung:

2015.01.26 10:17:02.387 '2715450': modification of order #21925852 sell 0.10 EUREX.FDX at 10691.00 sl: 0.00 tp: 10533.00 -> sl: 10744.46 tp: 10533.00 failed [Invalid S/L or T/P]

woran könnte das liegen?

Hab das Demokonto bei VarenGold ... könnte es sein das die das nachträgliche anpassen des TP/SL nicht zulassen?

oderkönnte evtl was im Code nicht stimmen?
  #8 (permalink)  
Alt 26.01.15
Benutzerbild von markusrgb
Mitglied
 
Registriert seit: Jan 2015
Beiträge: 34
markusrgb befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von markusrgb Beitrag anzeigen
bekomm bei jedem Tick folgende Fehlermeldung:

2015.01.26 10:17:02.387 '2715450': modification of order #21925852 sell 0.10 EUREX.FDX at 10691.00 sl: 0.00 tp: 10533.00 -> sl: 10744.46 tp: 10533.00 failed [Invalid S/L or T/P]

woran könnte das liegen?

Hab das Demokonto bei VarenGold ... könnte es sein das die das nachträgliche anpassen des TP/SL nicht zulassen?

oder könnte evtl was im Code nicht stimmen?
Nochmal kurz ein Nachtrag ... an VarenGold liegt es wohl nicht (laut Kundenberater)

ein TP wird gesetzt (bei 10533.00) sind ca 1,5% von 10691.00
(erkenne ich auch im Chart an einer Roten Linie mit "OrderNummer TP"

allerdings scheint es Probleme mit dem SL zu geben obwohl er das ja wohl offensichtlich richtig errechnet "-> sl: 10744.46" sind 0,5% von 10691.00

wenn ich mir aber die laufende Order ansehe, steht da bei SL 0,00
  #9 (permalink)  
Alt 26.01.15
Benutzerbild von markusrgb
Mitglied
 
Registriert seit: Jan 2015
Beiträge: 34
markusrgb befindet sich auf einem aufstrebenden Ast
Standard

ok, ich glaub ich hab das Problem schon mal eingekreist ...

mit hilfe dieses Forum Artikels
http://www.expert-advisor.com/forum/...treikt-er.html

kommt wohl darauf an wie der Broker die Dax-Werte (Kommastellen) liefert, deswegen tritt wohl der invalid SL bzw. TP auf (denn in der regel liefert der Broker Daten als 9120 oder 9120,0 0der 9120,5).
Als SL oder TP werden aber sicherlich häufig Werte errechnet, die als Nachkommastelle keine 0 oder 5 haben und das akzeptiert der Broker nicht und verweigert das OrderModify().

in meinem Fall hatte ich beim Take Profit wohl nur Glück das er bei xxxxx,00
lag
mein Broker liefert die Daten in 0,25er Schritten ... (0,25 - 0,5 - 0,75 - 0,00)
deswegen akzeptiert er auch meinen sl: 10744.46 nicht

Dachte eigentlich das NachkommaStellen Problem währe mit dem Befehl:
"Digits" erledigt .... das is aber dann wohl leider doch nicht das gelbe vom Ei

Jetzt steh ich also vor dem Problem wie ich das ganze auf 0,25 oder gerne auch auf 0,5 Werte nach dem Komma bekomme
  #10 (permalink)  
Alt 26.01.15
Benutzerbild von markusrgb
Mitglied
 
Registriert seit: Jan 2015
Beiträge: 34
markusrgb befindet sich auf einem aufstrebenden Ast
Standard

Zu dem speziellen Problem wie ich das ganze auf 0,25 oder auf 0,5 Werte nach dem Komma bekomme erstelle ich mal ein neues Thema ....

Hab Spezifisch dazu leider nichts im Netz gefunden ... Aber evtl ist es ja auch für andere Interesant
Thema geschlossen

Lesezeichen

Stichworte
code, error, error mql4, fehler, mql4, programmierung, programmierung metatrader

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:00 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.
-----------------------------------------------------------------------------------------------------------------------------