Fragen von einem "Dummy" - Seite 105

 
uncleVic:
Ein wenig mehr Details... Wie lautet die nächste Zeile (oder besser mehrere) im Protokoll?

2012.02.22 12:51:15 st (EURUSD,H1) CExpertBase::SetOtherSeries: Ändern der Zeitreihe ist untersagt
2012.02.22 12:51:15 st (EURUSD,H1) CExpertBase::SetPriceSeries: Ändern der Zeitreihe ist untersagt

nichts anderes

 
openlive:

2012.02.22 12:51:15 st (EURUSD,H1) CExpertBase::SetOtherSeries: Ändern der Zeitreihe ist untersagt
2012.02.22 12:51:15 st (EURUSD,H1) CExpertBase::SetPriceSeries: Ändern der Zeitreihe ist untersagt

nichts anderes

Ich habe irgendwo ein altes Modul gefunden. Bitte fügen Sie den Code des Expert Advisors an, den Sie im Wizard erhalten haben. Das ist doch kein Geheimnis, oder?
 
uncleVic:
Es gibt irgendwo ein Modul im alten Stil. Bitte fügen Sie den mit dem Assistenten erhaltenen EA-Code bei. Das ist doch kein Geheimnis, oder?
//+------------------------------------------------------------------+
//|                                               Expert_Candles.mq5 |
//|                        Copyright 2010, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
#include <Expert\Signal\SignalCandles.mqh>
#include <Expert\Trailing\TrailingNone.mqh>
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string Inp_Expert_Title              ="Expert_Candles";
int          Expert_MagicNumber            =28148;
bool         Expert_EveryTick              =false;
//--- inputs for signal
input int    Inp_Signal_Candles_Range      =3;
input int    Inp_Signal_Candles_Minimum    =50;
input double Inp_Signal_Candles_ShadowBig  =0.5;
input double Inp_Signal_Candles_ShadowSmall=0.2;
input double Inp_Signal_Candles_Limit      =0.0;
input double Inp_Signal_Candles_StopLoss   =2.0;
input double Inp_Signal_Candles_TakeProfit =1.0;
input int    Inp_Signal_Candles_Expiration =4;
//--- inputs for money
input double Inp_Money_FixLot_Percent      =10.0;
input double Inp_Money_FixLot_Lots         =0.1;
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(-1);
     }
//--- Creation of signal object
   CSignalCandles *signal=new CSignalCandles;
   if(signal==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(-2);
     }
//--- Add signal to expert (will be deleted automatically))
   if(!ExtExpert.InitSignal(signal))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing signal");
      ExtExpert.Deinit();
      return(-3);
     }
//--- Set signal parameters
   signal.Range(Inp_Signal_Candles_Range);
   signal.Minimum(Inp_Signal_Candles_Minimum);
   signal.ShadowBig(Inp_Signal_Candles_ShadowBig);
   signal.ShadowSmall(Inp_Signal_Candles_ShadowSmall);
   signal.Limit(Inp_Signal_Candles_Limit);
   signal.StopLoss(Inp_Signal_Candles_StopLoss);
   signal.TakeProfit(Inp_Signal_Candles_TakeProfit);
   signal.Expiration(Inp_Signal_Candles_Expiration);
//--- Check signal parameters
   if(!signal.ValidationSettings())
     {
      //--- failed
      printf(__FUNCTION__+": error signal parameters");
      ExtExpert.Deinit();
      return(-4);
     }
//--- Creation of trailing object
   CTrailingNone *trailing=new CTrailingNone;
   if(trailing==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(-5);
     }
//--- Add trailing to expert (will be deleted automatically))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(-6);
     }
//--- Set trailing parameters
//--- Check trailing parameters
   if(!trailing.ValidationSettings())
     {
      //--- failed
      printf(__FUNCTION__+": error trailing parameters");
      ExtExpert.Deinit();
      return(-7);
     }
//--- Creation of money object
   CMoneyFixedLot *money=new CMoneyFixedLot;
   if(money==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(-8);
     }
//--- Add money to expert (will be deleted automatically))
   if(!ExtExpert.InitMoney(money))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(-9);
     }
//--- Set money parameters
   money.Percent(Inp_Money_FixLot_Percent);
   money.Lots(Inp_Money_FixLot_Lots);
//--- Check money parameters
   if(!money.ValidationSettings())
     {
      //--- failed
      printf(__FUNCTION__+": error money parameters");
      ExtExpert.Deinit();
      return(-10);
     }
//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(-11);
     }
//--- ok
   return(0);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| Function-event handler "tick"                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| Function-event handler "trade"                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| Function-event handler "timer"                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+
 
mql5:
Vielen Dank, wenn ich eine kurze Frage stellen darf - ist es zulässig, dass zwei Prozesse von derselben Website lesen?
 
openlive:
Seltsam, dass dieser Code überhaupt kompiliert werden kann.
#include <Expert\Signal\SignalCandles.mqh> - это старый модуль


PS Die Datei hätte auch einfach angehängt werden können.

 
uncleVic:
Seltsam, dass dieser Code überhaupt kompiliert werden kann.


PS Die Datei hätte auch einfach angehängt werden können.

Die Sache ist die, der Tester funktioniert gut damit... aber wird es im Handel funktionieren?

Wie ich verstanden habe, gibt es kein neues Modul? was soll ich dann in diesem Modul tun, wenn es nicht schwierig ist?

 
openlive:

Die Sache ist die, der Tester funktioniert gut damit... aber wird es im Handel funktionieren?

Wie ich verstanden habe, gibt es kein neues Modul? was muss ich dann in diesem Modul tun, wenn es nicht schwierig ist?

Es wird funktionieren. Sie müssen sie in die Methode CSignalCandles::ValidationSettings() einfügen, und zwar ganz am Anfang:

//--- call of the method of the parent class
   if(!CExpertSignal::ValidationSettings()) return(false);
 
uncleVic:

Es wird funktionieren. Um dies zu vermeiden, fügen Sie es in die Methode CSignalCandles::ValidationSettings() ein, und zwar ganz am Anfang:

bool CSignalCandles::ValidationSettings()
{
if(!CExpertSignal::ValidationSettings()) return(false);

if(m_range<=0)
{
printf(__FUNCTION__+": candles range must be greater than 0");
return(false);
}
//--- ok
return(true);
}
Sie ist also bereits vorhanden.
 
220Volt:
Danke, wenn ich eine kurze Frage stellen darf - ist es zulässig, dass zwei Prozesse aus demselben Bereich lesen?
Ja, beim Lesen gibt es keine Probleme.
 
openlive:

es ist schon da.
Aufgabe... Bitte Signalmodul anbringen (ich habe keines). Schauen wir uns das mal an.