[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 107

 
다시 그려지지 않도록 이 사이트에 거래일에 대한 지지 및 저항 수준 의 지표가 있습니까? 어떤 양초를 다시 그릴지 선택할 수도 있습니다(매일, 월, 주). 이전 일/주/월에 대한 수준이 표시되었습니다. 또한 계산된 수준이 사실로 간주되었습니다! allpivotpoint는 계산기를 사용하여 잘못된 계산을 하고 다른 지표에서 확인한 다른 숫자를 얻었지만 다시 그립니다(버그가 분명히 있으며 이전 기간/계산에 대한 수준을 표시하지 않음)
 

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


어렵지 않다면 자세히 설명해주실 수 있나요?
 
artmedia70 :
내가 당신에게 너트를 줄게, 그리고 당신은 왜 차가 시동되지 않는지 말해주세요... :)


올바른 너트로 - 말할 수 있습니다 ... :-)

첨부파일... 감사합니다!

파일:
demo1.3.1.mq4  36 kb
 
Pupersa :

어렵지 않다면 자세히 설명해주실 수 있나요?
교과서 또는 문서에서 "주문 작업"을 찾으십시오. 주문 검색 기능 사용, 매개변수에 따라 필요한 항목 찾기, 주문 변경 기능으로 변경
 

포럼 사용자 여러분, 스크립트에서 오류를 찾도록 도와주세요.

문제의 본질은 값이 있는 4개의 파일이 있고 각 파일을 열고 모든 것을 배열에 쓰고 평균 최대값과 최소값을 계산한 다음 다른 배열로 전송해야 한다는 것입니다.

GetFileData();, ArrInsertInt (InsertArr, MathAbs(StrToInteger(value))); 거기에 값을 추가하고 다시 쓰지 않기 시작합니다.

 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 );
}

여기에 스크립트와 파일 중 하나가 있습니다

 
puschistic :

포럼 사용자 여러분, 스크립트에서 오류를 찾도록 도와주세요.

문제의 본질은 값이 있는 4개의 파일이 있고 각 파일을 열고 모든 것을 배열에 쓰고 평균 최대값과 최소값을 계산한 다음 다른 배열로 전송해야 한다는 것입니다.

GetFileData();, ArrInsertInt(InsertArr, MathAbs(StrToInteger(value))); 거기에 값을 추가하고 다시 쓰지 않기 시작합니다.

여기에 스크립트와 파일 중 하나가 있습니다

어떤 이유로 파일이 첨부되지 않았습니다. 내용은 다음과 같습니다.

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

 
MetaEditor에서 일부 변수, 예를 들어 빨간색 또는 다른 것을 볼 수 있습니까?
 
MQL4. 하나의 입력 필드로 대화 상자 를 만드는 방법은 무엇입니까?
 
API, ...DLL
 

포물선 , 현재 및 이전 SAR 값을 비교하려고합니다. 그러나 그것은 작동하지 않습니다. 나는 지금 하루 동안 고통 받고 있습니다. 이 코드가 작동하지 않는 이유는 무엇입니까? 다음은 스크립트 코드입니다.

 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 ;
}
이 옵션은 다음과 같이 작동합니다.
 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 ;
}
사유: