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

 
Gibt es einen Indikator für die Unterstützungs- und Widerstandsniveaus auf dieser Seite für den Handelstag, der nicht neu gezeichnet werden konnte. Es war auch möglich zu wählen, für welche Kerzen sie neu gezeichnet werden sollte (täglich, monatlich, wöchentlich). Wenn ich diesen Indikator als Grundlage für meine eigenen Schätzungen verwenden wollte, müsste ich sie nicht allzu genau betrachten, aber ich würde erwarten, dass ich ein gutes Ergebnis erhalte.
 

Pupersa, найди этот ордер и измени в нём параметр "стоплосс", ничё сложного.


Wenn es Ihnen nichts ausmacht, können Sie das näher erläutern?
 
artmedia70:
Ich gebe dir die Nuss und du sagst mir, warum das Auto nicht anspringt... :)


Mit der richtigen Nuss können Sie mir sagen... :-)

Im Anhang finden Sie die Datei... Vielen Dank im Voraus!

Dateien:
demo1.3.1.mq4  36 kb
 
Pupersa:

Wenn es Ihnen nichts ausmacht, können Sie das näher erläutern?
Suchen Sie in einem Lehrbuch oder in der Dokumentation nach "Arbeiten mit Aufträgen". Verwenden Sie die Auftragssuchfunktion, um einen Auftrag nach Ihren Parametern zu finden, und ändern Sie ihn mit der Auftragsänderungsfunktion.
 

Bitte helfen Sie mir, einen Fehler im Skript zu finden.

Die Essenz des Problems ist es, 4 Dateien mit den Werten zu haben, die benötigt werden, um jede Datei zu öffnen, alles in ein Array zu schreiben und die durchschnittlichen Maximal- und Minimalwerte zu berechnen und sie dann an ein anderes Array zu übergeben.

Der Fehler ist folgender: Wenn ich GetFileData();, ArrInsertInt(InsertArr, MathAbs(StrToInteger(value)); aufrufe, beginnt es, Werte hinzuzufügen und sie nicht wieder zu schreiben.

string FNLenUp;//имя файла для записи\чтения длин восходящего движения
string FNSpeedUp;//имя файла для записи\чтения скорости восходящего движения
string FNLenDown;//имя файла для записи\чтения длин восходящего движения
string FNSpeedDown;//имя файла для записи\чтения скорости восходящего движения 
//----------------------------------------------------------------------------------------------------------//
int SpeedArrUp[];//массив времени фиксации цен восходящего
int LengthArrUp[];//массив цен восходящего
int SpeedArrDown[];//массив времени фиксации цен нисходящего
int LengthArrDown[];//массив цен нисходящего
extern double percent = 0.005;//пункты
int init()
{
    GetNameF();
    GetFileData(FNLenUp,LengthArrUp);
    GetFileData(FNSpeedUp,SpeedArrUp);
    GetFileData(FNLenDown,LengthArrDown);
    GetFileData(FNSpeedDown,SpeedArrDown);
    
}
int GetFileData (string FileName, int& RetArr[])
{

     
    int Handle = 0;//файловый указатель
    int i = 0;
    int F_newFile = -1;//Флаг создания нового файла (1)-да (0)-нет
    int InsertArr[];//Массив для извлечения в него данных из файла
    int ArrSize = -1;//Размер массива
    int ArrMax = -1;//Максимальное значение
    int ArrMin = -1;//Минимальное значение
    int ArrAverage = -1;//Среднее значение
    string value = 0;
    //---------------------------------------------------------------------//
    //Print(ArrSize);
    //Смотрим существует ли файл


      //И меняем флаг что файл не создавался 
      F_newFile = 0;
      //значит открываем его для чтения
      Handle=FileOpen("lengthEURUSD0.0050Down.csv", FILE_READ);
      if(Handle<1)
      {
         Print("Ошибка открытия файла для чтения.");
         return(0);
      }
      FileSeek(Handle, 0, SEEK_SET);
      while(FileIsEnding(Handle)==false)  
      {                                
         value =FileReadString(Handle);
         if(value!="")
         {
            //Записываем всё в массив из файла
            ArrInsertInt(InsertArr, MathAbs(StrToInteger(value)));
         }  
         if(FileIsEnding(Handle)==true)
         {
            break;
         }     
      }
      //Рассчитываем значения средние максимальные и т.д.
      ArrSize = ArraySize(InsertArr);
      Print(ArrSize);
      //---------------------------------------------------------------------//
      ArrMax = ArrayMaximum(InsertArr,ArrSize,0);
      ArrMax = InsertArr[ArrMax];
      //---------------------------------------------------------------------//      
      ArrMin = ArrayMinimum(InsertArr,ArrSize,0);
      ArrMin = InsertArr[ArrMin];
      //---------------------------------------------------------------------//      
      ArrAverage = 0;
      for(i = 0; i<=ArrSize; i++)
      {
         ArrAverage = ArrAverage+InsertArr[i];
      }
      ArrAverage = ArrAverage/ArrSize;
      //---------------------------------------------------------------------// 
      FileClose(Handle);   

    //---------------------------------------------------------------------//
    //Смотрим если все значения есть, тогда запихиваем всё в массив и передаём его
    if(F_newFile != -1 && ArrSize != -1 && ArrMax != -1 && ArrMin != -1 && ArrAverage != -1)
    { 
      ArrInsertInt(RetArr,F_newFile);
      ArrInsertInt(RetArr,ArrSize);
      ArrInsertInt(RetArr,ArrMax);
      ArrInsertInt(RetArr,ArrMin);
      ArrInsertInt(RetArr,ArrAverage);
      ArrInsertInt(RetArr,Handle);
      Print(RetArr[0],"|",RetArr[1],"|",RetArr[2],"|",RetArr[3],"|",RetArr[4],"|",RetArr[5]);
      return (RetArr);
    }
    //---------------------------------------------------------------------//
    //иначе передаем только файловый указатель
    ArrInsertInt(RetArr,Handle);
    ArrInsertInt(RetArr,F_newFile);    
    return (RetArr);
}
void GetNameF()
{string symbol;//инструмент которым будем торговать
    //создаём имя файла
    symbol = Symbol();
    //---------------------------------------------------------------------------------------------------------------------------//
    FNLenUp = "length"+symbol+DoubleToStr(percent,4)+"up";
    //--------------------------------------------------------//
    FNSpeedUp = "speed"+symbol+DoubleToStr(percent,4)+"up";
    //--------------------------------------------------------//
    FNLenDown = "length"+symbol+DoubleToStr(percent,4)+"Down";
    //--------------------------------------------------------//
    FNSpeedDown = "speed"+symbol+DoubleToStr(percent,4)+"Down";
}
int ArrInsertInt(int& m[], int e, int p=-1) {
  int j, k=ArraySize(m);
   p=-1;

  ArrayResize(m, k+1);
  if (p>=0 && p<k) {
    for (j=k; j>p; j--) m[j]=m[j-1];
    m[p]=e;
  } else m[k]=e;

  return(k+1);
}

Hier ist das Skript und eine der Dateien

 
puschistic:

Bitte helfen Sie mir, einen Fehler im Skript zu finden.

Die Essenz des Problems ist es, 4 Dateien mit den Werten zu haben, die benötigt werden, um jede Datei zu öffnen, alles in ein Array zu schreiben und die durchschnittlichen Maximal- und Minimalwerte zu berechnen und sie dann an ein anderes Array zu übergeben.

Der Fehler ist folgender: Wenn ich GetFileData();, ArrInsertInt(InsertArr, MathAbs(StrToInteger(value)); aufrufe, beginnt es, Werte hinzuzufügen und sie nicht wieder zu schreiben.

Hier ist das Skript und eine der Dateien

Die Datei ist aus irgendeinem Grund nicht angehängt. Hier ist der Inhalt:

121
58
91
176
87
58
105
166
95
54
59
99
54
172
79
55
69
110
97
80
119
113
124
68
80
79
51
84
58
112
51
181

 
Ist es möglich, eine Variable in MetaEditor zu sehen, zum Beispiel in rot oder etwas anderem?
 
MQL4. Wie erstelle ich ein Dialogfeld mit einem einzigen Eingabefeld?
 
API, ... DLL
 

Ich versuche, die SAR-Parabel, die aktuelle und die vorherige zu vergleichen. Aber es funktioniert nicht, ich kämpfe schon seit einem Tag damit. Warum funktioniert dieser Code nicht? Hier ist der Skriptcode:

int start()
{
   double sar0 = iSAR(Symbol(), 0, 0.02, 0.2, 0);
   double sar2 = iSAR(Symbol(), 0, 0.02, 0.2, 1);
   sar0 = sar2;
      if (sar0 == sar2)                            //если написать sar0 = sar2,
         Alert("SAR проверяется");                 //то работает, как в коде ниже
   return;
}
Diese Variante funktioniert:
int start()
{
   double sar0 = iSAR(Symbol(), 0, 0.02, 0.2, 0);
   double sar2 = iSAR(Symbol(), 0, 0.02, 0.2, 1);
         Alert("sar0 до присваивания: ", sar0, "sar2 до присваивания: ", sar2); 
   sar0 = sar2;
   //if (sar0 == sar2)                              //если написать sar0 = sar2,
      Alert("sar0 после присваивания: ", sar0, 
      "sar2 после присваивания: ", sar2);             //то работает.
   return;
}