[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 542

 
chief2000 писал(а) >>


Es ist nicht 1 Stunde, sondern 1 Minute, die Größe einer solchen Datei beträgt normalerweise etwa 160 MByte (10 Jahre) - könnte das mit dem Speicherplatz zusammenhängen?





Danke, jetzt verstehe ich! Ich habe den Verlauf heruntergeladen, weil das Testgerät ohne ihn nicht gestartet werden konnte.
 
Bitte um Hilfe.
Sie schließt die Positionen nicht. Comm zeigt sowohl 2 als auch -2 in int GetTradeSignal_Strategija_1 . Ich habe die Funktionen von Kim und Ts ausprobiert. Ich weiß nicht, was los ist.
Dateien:
pomogite.mq4  21 kb
 
Hier ist der Algorithmus ManagePositions_Strategija_1.
 
Bitte um Hilfe.
Warum erhalte ich diesen Fehler, wenn ich meinen Expert Advisor teste?
ungültiger Preis 1.50615000 für OrderSend-Funktion
Alle Notierungen im Archiv sind vierstellig, aber die Fehlermeldung zeigt einen achtstelligen Preis an?
 
LeRus >>:
Помогите пожалуйста.
Почему когда тестирую советник выдает такую ошибку:
invalid price 1.50615000 for OrderSend function
А архиве все котировки четырехзначные а ошибку выдает с восмизначной ценой??


NormalizeDouble(Preis,Ziffer);

 
LeRus >>:
Помогите пожалуйста.
Почему когда тестирую советник выдает такую ошибку:
invalid price 1.50615000 for OrderSend function
А архиве все котировки четырехзначные а ошибку выдает с восмизначной ценой??



Es ist notwendig, zu verwenden:

NormalizeDouble(ПЕРЕМЕННАЯ, Digits)
 
Jetzt funktioniert alles. Ich danke Ihnen vielmals.
 
Hallo, ich habe einen Indikator, den ich erstellt habe, um Preisbewegungen über einen bestimmten Zeitrahmen zu messen:
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1  White
#property indicator_color2  Blue

extern int MAPeriod = 14;

// buffers
double V[];           // Собственно значения
double SmoothedValues[];

int DigitsUsed = 8;


int init()
{
   // ассоциируем буферы
   SetIndexBuffer(0, V);
   SetIndexBuffer(1, SmoothedValues);   
   // задаем настройки для буферов
   SetIndexStyle(0, DRAW_LINE);     // Основной сигнал будет сплошной линией
   SetIndexStyle(1, DRAW_LINE);     // Основной сигнал будет сплошной линией   
   IndicatorDigits(DigitsUsed);

   return(0);
}

int start()
{
   int toCount = Bars - IndicatorCounted();  
   double P1,P2,P3;
   // Считаем значения
   for (int i = toCount - 1; i >=0; i--)
   {
      if(Open[i]>Close[i])
        {
         P1=High[i]-Low[i];
         P2=High[i]-Open[i];
         P3=Close[i]-Low[i];
        }
      if(Close[i]>Open[i])
        {
         P1=High[i]-Low[i];
         P2=High[i]-Close[i];
         P3=Open[i]-Low[i];
        }
      
      V[i] = P1+P2+P3;
   }
      
   // Считаем сглаженные значения
   for (i = toCount - 1; i >=0; i--)
   {
      SmoothedValues[i] = NormalizeDouble(iMAOnArray(V, 0, MAPeriod, 0, MODE_SMA, i), DigitsUsed);
   }
      
   
   return(0);
}
Wo der Fehler, ich brauche diesen Indikator, um die Bar auf die Minuten zu berechnen, dh werfen sie auf die 1 H und es fügt alle Minuten des berechneten Indikators:
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1  White

// buffers
double V[];           // Собственно значения

int init()
{
   // ассоциируем буферы
   SetIndexBuffer(0, V);
   // задаем настройки для буферов
   SetIndexStyle(0, DRAW_HISTOGRAM);     // Основной сигнал будет сплошной линией  
   return(0);
}

int start()
{
   int toCount = Bars - IndicatorCounted(); 
   // Считаем значения
   for (int i = toCount - 1; i >=0; i--)
    {
     double t=0; //обнуляем счетчик
     int Minut1 = iBarShift(NULL,1,iTime(NULL,Period(),i),false);//Сколько минут прошло в баре
     int Minut0 = iBarShift(NULL,1,iTime(NULL,1,i),false);//нулевая минута в баре
     for(int k=Minut0; k<=Minut1;k++)
      {
       double K=iCustom(NULL,1,"V",14,0,k); //Сам индикатор
       t=t+K;
      } 
     V[i]=t; //забиваем в массив
    }   
   return(0);
}
Mit freundlichen Grüßen Alexander
 
Guys, helfen Dummies, in das Tutorial und auf dem Forum, um es sehr klar - nicht gefunden haben.

Ich modifiziere den EA für einen bestimmten Zeitrahmen M1 und M5, es gibt eine einfache Bedingung:

double m1=iMA(NULL,0,period1,0,1,0,0);
double m2=iMA(NULL,0,period2,0,1,0,0);
then if(m1>m2) {okbuy=1;} blah blah blah

Keine Fragen hier.
Aber ich brauche eine andere MA-Bedingung (wie oben), aber von einem höheren spezifischen Zeitrahmen D1 (und der EA wird auf M1 arbeiten)
Wie man in der aktuellen Zeitrahmen und in der aktuellen Paar, die Indikator-Daten aus dem aktuellen Paar - aber ein anderer Zeitrahmen anfordern? Damit ich diese Daten dann für eine Bedingung verwenden kann.
Ich wäre Ihnen besonders dankbar, wenn Sie mir Vorschläge machen könnten, wie man ältere Zeitrahmen und andere Indikatoren im aktuellen Zeitrahmen analog verwenden kann. Danke
 
alfo13 >>:
Ребят, помогите чайнигу, в учебнике и на форуме чтобы сильно понятно - так и не нашел.

Переделываю советник под конкретный таймфрейм M1 и M5, там присутствует простое условие:

double m1=iMA(NULL,0,period1,0,1,0,0);
double m2=iMA(NULL,0,period2,0,1,0,0);
затем if(m1>m2) {okbuy=1;} бла бла бла

Здесь вопросов нет.
Но мне надо чтобы было еще одно условие по MA (по типу вышеописанного) но из старшего конкретного таймфрейма D1 (а советник будет работать на M1)
Как запросить в текущем таймфрейме и в текущей паре, данные индикатора из текущей пары - но другого таймфрема? Чтобы потом можно было по этим данным сделать условие.
Особо буду признателен, если еще подскажете как по аналогии использовать старшие таймфреймы и других индикаторов в текущем периоде. Спасибо


Wo Zeitraum1 oder Zeitraum2 einfügen PERIOD_D1