[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 19

 
Ereke:
Herzlichen Glückwunsch an Sie!

Glückwünsche sind angebracht. Obwohl ein Schuss in die Luft niemandem schadet.
 
Vinin:

Glückwünsche sind angebracht. Obwohl ein Schuss in die Luft niemandem schadet.
Victor, ist Ihr Skype nicht verfügbar oder ist Ihre Verbindung gestört? Was ist mit dem ZZ los?
 
2011.01.24 17:18:44 TestGenerator: Fehler bei nicht übereinstimmenden Daten (Volumengrenze 971 am 2011.01.19 10:00 überschritten)
Können Sie mir sagen, um welche Art von Fehler es sich handelt? Im Protokoll während des Tests in der Masse, aber die Aufträge offen.
 
artmedia70:
Victor, ist Ihr Skype nicht verfügbar oder ist Ihre Verbindung gestört? Was ist das ZZ?

Ja, ich meine, vielleicht sollte ich einen speziellen Zapper bauen. Es ist nicht mein Skype, das im Sterben liegt. Ich habe dich in grün.
 
r.ig.h:
2011.01.24 17:18:44 TestGenerator: Fehler bei nicht übereinstimmenden Daten (Volumengrenze 971 am 2011.01.19 10:00 überschritten)
Können Sie mir sagen, um welche Art von Fehler es sich handelt? Im Protokoll während des Tests in der Masse, aber die Aufträge offen.

Es gibt keine Geschichte oder es gibt Fehler in der Geschichte
 
Hilfe Skript zwicken, dass würde bedeuten, öffnen Sie ein Geschäft sofort, zum aktuellen Marktpreis. A chet, ich bin schon beschwipst, dass der Abstand von den Fischen in 5 Pips nicht ausreicht, und so wäre ich zumindest mit einer Ablenkung im Swap.
Dateien:
 

Guten Abend!

Ich kann mir keinen Reim auf die

Schicht - Index des aus dem Indikatorpuffer empfangenen Wertes (Verschiebung relativ zum aktuellen Takt um die angegebene Anzahl von Perioden zurück).

Im Indikator Fraktale. Wenn ich richtig denke, zeigt der Indikator den Extremwert unter fünf Balken an, unter der Bedingung, dass die Maxima der zwei vorhergehenden und der zwei folgenden Balken (im Falle eines Fraktals nach oben) kleiner sind (obwohl das "Vögelchen" eines Fraktals auch dann auf dem Chart angezeigt wird, wenn das Extremum des ganz linken Balkens dieser fünf = Extremum ...... und nicht kleiner als dieses ist). Warum also umschalten? Was wird angezeigt, wenn die Verschiebung nicht gleich 3, sondern gleich 2 oder 5 ist?

 

Ich habe diesen Code erstellt, um den Markt nach dem ersten Fraktal Break nach dem MA Break zu betreten. Im Test werden jedoch nicht überall Geschäfte geöffnet, obwohl dies eigentlich vorgesehen ist. Ich verstehe nicht, was los ist? Im realen Modus (bei der Überprüfung auf M1 kann ich den Fehler nicht finden).

 extern int Period_MA = 5,                 // Период расчётной МА
            PERIOD=1,                      // Период текущего графика (таймфрейм)
            MODE=3,                        // Метод усреднения из методов скользящего среднего
            PRICE_TYPE=0,                  // Используемая цена из ценовых констант
            Прибыль=10,
            Ограничение=55;

 double 
        upfractal,
        dwfractal,
        SL[10001]={0,,10000},
        TP[10001]={0,,10000};
        
 bool   Двверх=false,
        Дввниз=false,
        Сделкавверх=false,
        Сделкавниз=false;
        
  int   A,                             // Переменная массива вверх
        B,                             // Переменная массива вниз
        BarTime,                       // Время текущего бара
        ticketup,                      // Ордер вверх
        ticketdown,                    // Ордер вниз
        Tвверх,                        // Время сделки вверх
        Tвниз;                         // Время сделки вниз;
        
 color вверх = SpringGreen,           // Цвет сделки вверх
       вниз = Red;                    // Цвет сделки вниз       
        
int start()
  {
  
  string Symb=Symbol();         // Финанс. инструмент
  
  double  Lot=0.01;              // Лот
  
    if(BarTime!=Time[0])           // Условие для того, чтобы программа считала только на начале бара, а не на каждом тике
      {
        double MA_1 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 1);
        double MA_2 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 2);
        double MA_3 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 3);
        double MA_4 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 4);
        double MA_5 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 5);
        double MA_6 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 6);
        double MA_7 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 7); 
        double MA_8 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 8); 
               
//--------------------------------------------------------------------
        if(NormalizeDouble(MA_8,Digits)>NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_7,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_6,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_5,Digits)>=NormalizeDouble(MA_2,Digits) 
        && NormalizeDouble(MA_3,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_4,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_2,Digits)<NormalizeDouble(MA_1,Digits)) // Перелом вверх
          {
            Двверх=true;
            Alert("Двверх");
            Дввниз=false;
            Сделкавниз=false;
            dwfractal=0;
            upfractal=0;
          }
        if(Двверх==true)
          {    
            
                upfractal=iFractals(Symbol(), PERIOD, MODE_UPPER, 3);
                Alert("upfractal вначале = ",upfractal);
                
              
          }
        if(NormalizeDouble(MA_8,Digits)<NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_7,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_6,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_5,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_3,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_4,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_2,Digits)>NormalizeDouble(MA_1,Digits)) // Перелом вниз
          {
            Дввниз=true;
            Двверх=false;
            Alert("Дввниз");
            Сделкавверх=false;
            upfractal=0;
            dwfractal=0;
          }
        if(Дввниз==true)
          {    
            
                dwfractal=iFractals(Symbol(),PERIOD, MODE_LOWER, 3);
                Alert("dwfractal вначале = ",dwfractal);
              
          }    
          BarTime=Time[0];
      }else                                                                  // На каждый тик
        { 
          Alert("upfractal на тиках = ",upfractal,", Bid = ", Bid);
          if (Двверх==true && upfractal !=0 && Bid > NormalizeDouble(upfractal+1*Point,Digits) && Tвверх!=Time[0] && Сделкавверх==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
            {
               Alert("upfractal = ",upfractal, ", Ask = ",Ask);
               Tвверх=Time[0];
               while(true)                                                  // Цикл открытия орд.
                  {
                    A++;
                    SL[A]=Bid-Ограничение*Point;
                    TP[A]=Bid+7*Point+Прибыль*Point;
                    ticketup=OrderSend(Symb, OP_BUY, Lot, Ask,0, SL[A], TP[A],NULL,A,0,вверх); // Ордер вверх
                        int Error=GetLastError();
                        switch(Error)                                      // Преодолимые ошибки
                          {
                           case 6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
                           RefreshRates();                                 // Обновим данные
                           Sleep(1);                                       // Задержка в цикле до нового тика
                         continue;                                         // На след. итерацию
                          }
                         break;                                            // Выход из цикла
                   }
                    Сделкавверх=true; 
            }
            Alert("dwfractal на тиках = ",dwfractal,", Bid = ", Bid);
          if (Дввниз==true && dwfractal !=0 && Bid < NormalizeDouble(dwfractal-1*Point,Digits) && Tвниз!=Time[0] && Сделкавниз==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
            {
               Alert("dwfractal = ",dwfractal, ", Bid = ",Bid);
               Tвниз=Time[0];
               while(true)                                  // Цикл открытия орд.
                  {
                    B++;
                    SL[B]=Bid+Ограничение*Point;
                    TP[B]=Bid-4*Point-Прибыль*Point;
                    ticketdown=OrderSend(Symb, OP_SELL, Lot, Bid,0, SL[B], TP[B],NULL,B,0,вниз); // Ордер вниз
                        Error=GetLastError();
                        switch(Error)                             // Преодолимые ошибки
                          {
                           case 6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
                           RefreshRates();                        // Обновим данные
                           Sleep(1);                              // Задержка в цикле до нового тика
                         continue;                                // На след. итерацию
                          }
                         break;                                    // Выход из цикла
                   }
                   Сделкавниз=true;
            } 
        }
//----
   return(0);
  }
//+------------------------------------------------------------------+
Und bis es im Tester funktioniert, ist es sinnlos, es für die Optimierung mit einem Fehler zu verwenden. Was ist der Fehler... ?
 

Angepasst von einem anderen Thema

Leonid82 24.01.2011 19:51

Hallo, ich habe einen Expert Advisor, der mit EURUSD arbeitet. Wie kann ich z. B. High[1] auf GBPUSD erhalten?

Ich danke Ihnen für Ihre Hilfe.

 

Leonid82, High[1] ist der Höchstkurs der ersten Kerze. Um sie zu erhalten, müssen Sie nur dieses Skript erstellen. Und diesen Preis erhält man nicht vom Expert Advisor, sondern vom Terminal.

//+------------------------------------------------------------------+
//|                 Старт работы скрипта                             |
//+------------------------------------------------------------------+
int start(){
  Alert("High[",i,"] = ",High[i]);
        return(0);
}