[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 330

 

Leute, ein Hinweis... Hier ist der Codeabschnitt, in dem die Marktzugangsbedingungen berechnet werden. WHY mit den bei der Optimierung ermittelten Werten für die Zeitspannen

extern int s_signal_period=7;
extern int t_trend_period =7; // 1-M1, 2-M5, 3-M15, 4-M30, 5-H1, 6-H4, 7-D1, 8-W.

d.h. die TF = tagsüber, der Markteintritt erfolgt bei der Eröffnung der 4-Stunden-Kerzen im Strategietester, wenn auf der Periode H4 getestet wird? Es sollte ein Eintrag NUR bei der Eröffnung des Tages Kerzen - ich gebe einen Code und Bericht Abschnitte für die Prüfung auf H4 und D1, Expert Advisor mit der Kontrolle eines neuen bar Eröffnung.

xtern string A4 = "Таймфрейм и параметры технических индикаторов";
extern int s_signal_period=7;
extern int t_trend_period =7;
...
static datetime prevtime = 0;       // по ценам открытия

...
int start()
{
   if(Time[0] == prevtime)   return(0);  //ждем нового бара
   prevtime = Time[0];                   //если появился новый бар , включаемся
   
   ...                     
//---------------------------------------------В ЛОНГ-------------------------------------------------------------------------      

      if(((type_op()==OP_BUY) || (Buy_signal==true && Sell_signal==false)) && (orderCount==0 || orderCount < 10) && Period_MA_Fast<Period_MA_Slow && delta_fma()>0 && delta_sma()>0 &&   
           iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,1) > iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,2) && //идентификация впадины 
           iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,2) > iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,3) && //с последующим
           iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,4) > iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,3))   //ростом
            
           WmOrderSend(Symbol(), OP_BUY, Lots_New, Ask,Bid-StopLoss*Point, Bid + TakeProfit*Point, "2MA+Momentum", magic);


//---------------------------------------------В ШОРТ--------------------------------------------------------------------------     
     
      if(((type_op()==OP_SELL) || (Buy_signal==false && Sell_signal==true)) && (orderCount==0 || orderCount < 10) && Period_MA_Fast<Period_MA_Slow  && delta_fma()<0 && delta_sma()<0 &&
          iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,1) < iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,2) && //вершина 
          iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,2) < iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,3) && //с последующим 
          iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,4) < iMomentum(Symbol(),signal_period,Period_M, PRICE_CLOSE,3))   //падением
      
          
           WmOrderSend(Symbol(), OP_SELL, Lots_New, Bid, Ask+StopLoss*Point, Ask - TakeProfit*Point, "2MA+Momentum", magic); 
      
         
 ...          
}//------------------------------------------Конец Старт-----------------------------------------------------

double delta_fma()
  {
    int signal_period= GetPeriod(s_signal_period);
    return(iMA(Symbol(),signal_period,Period_MA_Fast,0,MODE_EMA,PRICE_CLOSE,1)-
           iMA(Symbol(),signal_period,Period_MA_Fast,0,MODE_EMA,PRICE_CLOSE,3));
  }

double delta_sma()
  {
    int trend_period = GetPeriod(t_trend_period); 
    return(iMA(Symbol(),trend_period,Period_MA_Slow,0,MODE_EMA,PRICE_CLOSE,1)-
           iMA(Symbol(),trend_period,Period_MA_Slow,0,MODE_EMA,PRICE_CLOSE,3));
  }

//для оптимизации по всем периодам по всем периодам
int GetPeriod(int period)
{int periodres;
 switch(period)
  {
   case 1: periodres=1;break;     //M1
   case 2: periodres=5;break;     //M5
   case 3: periodres=15;break;    //M15
   case 4: periodres=30;break;    //M30
   case 5: periodres=60;break;    //H1
   case 6: periodres=240;break;   //H4
   case 7: periodres=1440;break;  //D1
   case 8: periodres=10080;break; //W
   default: periodres=1;break;
  }
return(periodres);
} 

Berichte. Beim Test auf H4 - Einstieg in den Markt alle 4 Stunden, wenn die Handelsbedingungen erfüllt sind, obwohlextern int s_signal_period =7;
extern int
t_trend_period =7;

D1 - Test auf D1 - Einstieg in den Markt bei der Eröffnung von D1, zur gleichen Zeitextern int s_signal_period=7;
extern int
t_trend_period =7;

Das soll so sein... Warum betritt der Strategietester den Markt bei der H4-Eröffnung, wenn er auf H4 testet, aber nicht bei der Eröffnung der Tageskerzen? weils_signal_period=7;
extern int
t_trend_period =7;

Vielen Dank für den Hinweis zu diesem Thema.

 
Roman.:

Leute, ein Hinweis... Hier ist der Codeabschnitt, in dem die Marktzugangsbedingungen berechnet werden. WHY mit den bei der Optimierung ermittelten Werten für die Zeitspannen

d.h. die TF = tagsüber, der Markteintritt erfolgt bei der Eröffnung der 4-Stunden-Kerzen im Strategietester, wenn auf der Periode H4 getestet wird? Es sollte ein Eintrag NUR bei der Eröffnung des Tages Kerzen - ich gebe einen Code und Bericht Abschnitte für die Prüfung auf H4 und D1, Expert Advisor mit der Kontrolle eines neuen bar Eröffnung.

Berichte. Beim Test auf H4 - Einstieg in den Markt alle 4 Stunden, wenn die Handelsbedingungen erfüllt sind, obwohlextern int s_signal_period =7;
extern int
t_trend_period =7;

D1 - Test auf D1 - Einstieg in den Markt bei der Eröffnung von D1, zur gleichen Zeit extern int s_signal_period=7;
extern int
t_trend_period =7;

Das soll so sein... Warum betritt der Strategietester den Markt bei der H4-Eröffnung, wenn er auf H4 testet, aber nicht bei der Eröffnung der Tageskerzen? weils_signal_period=7;
extern int
t_trend_period =7;

Vielen Dank für den Hinweis zu diesem Thema.


Der angegebene Code reicht nicht aus, um folgende Fragen zu beantworten
 
Vinin:

Der angegebene Code reicht nicht aus, um folgende Fragen zu beantworten

Wie viel Code brauchen Sie? Der Signalteil ist da...
 
Vinin:

Der angegebene Code reicht nicht aus, um folgende Fragen zu beantworten

Jetzt habe ich es auf H1 getestet - es eröffnet jede Stunde Trades mit s_signal_period=7;
extern t_trend_period =7;
 
Roman.:

Jetzt getestet auf H1 - öffnet Trades jede Stunde mit s_signal_period=7;
extern int t_trend_period =7;


Es ist sinnvoll, die Variable signal_period global zu machen und ihr in init() einen Wert zuzuweisen

Und ändern Sie das Steuerelement für eine neue Leiste

   if(iTime(Symbol(),signal_period,0) == prevtime)   return(0);  //ждем нового бара
   prevtime = iTime(Symbol(),signal_period,0);                   //если появился новый бар , включаемся
 
Vinin:


Es ist sinnvoll, die Variable signal_period global zu machen und ihr in init() einen Wert zuzuweisen

Und ändern Sie die Steuerung der neuen Leiste


Ich verstehe, Victor, danke - ich werde es heute Abend nach der Arbeit versuchen. Ich werde in diesem Thread über die Ergebnisse berichten.
 
Woher weiß ich, ob ein Auftrag einen Elch gefangen hat oder nicht?
 
CLAIN:
Gibt es Tipps, wie man feststellen kann, ob ein Auftrag einen Verlust auffängt oder nicht?

Denken Sie richtig.

Suchen: Entdeckung von Verlustgeschäften :mql4.com, Suche nach Verlustgeschäften :mql4.com

 
CLAIN:
Woher weiß ich, ob ein Auftrag einen Verlust aufgefangen hat oder nicht?

Wenn OrderClosePrice()==OrderStopLoss(), dann wird der Auftrag definitiv mit einem Verlustauftrag geschlossen. Der Trick liegt im Bereich des Gewinns, der geschlossen wurde. Nehmen wir an, der Händler hat eine Position eröffnet, einen Stop-Loss gesetzt und dann, als die Position in den Gewinn ging, den Stop-Loss in eine positive Gewinnzone verschoben - wenn also der Stop ausgelöst wird, wird der Auftrag mit Gewinn geschlossen. Der Kurs gewann zurück und drückte den Auftrag um den Stoppkurs nach unten. Das heißt, der OrderClosePrice() ist in Wirklichkeit gleich dem OrderStopLoss(). Der ORDER hat einen Elch gefangen, aber er hat keinen Verlust, sondern einen Gewinn ausgewiesen. Was tun Sie in dieser Situation?
 

Hallo!

Können Sie mir sagen, wie ich die Losgröße in Abhängigkeit von Einstiegskurs, StopLoss und Prozentsatz der Einlage berechnen kann? Nehmen wir an, der Einstiegskurs liegt bei 1,4500, der StopLoss bei 1,4400. Das Risiko beträgt 100 Pips. Wenn der Preis eines Pips 0,1 beträgt und das Risiko 2 % des Saldos (10000) beträgt, wäre die Losgröße 0,2. Ist es möglich, diese Formel in MQL abzuleiten? Ich habe fast das gesamte Forum durchsucht und konnte nichts dergleichen finden. Alle anderen Methoden zur Losberechnung sind völlig unterschiedlich.

Ich danke Ihnen.