MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1438

 

어드바이저를 최적화 할 때 더 나은 방법을 알려주세요.

표시기 설정을 담당하는 많은 매개변수가 있으며 바로 이 표시기를 켜고 끄는 매개변수가 있습니다.


비활성화된 경우 표시기 설정을 최적화하는 것은 전혀 의미가 없습니다.

질문: 그런 무의미한 열거를 어떻게 끊을 수 있습니까?

 
ANDREY :

당신의 도움과 저에게 새로운 정보를 주셔서 감사합니다. 그러나 그것은 나를 깨우쳤고 훨씬 더 쉬운 방법이 마음에 떠올랐습니다 ....
1. 미닛 캔들에 대한 1차 주문 이 시작 되는 동안, 이 1차 주문을 열 때 이 캔들의 변수 X LOW를 기억합니다.
2. 제로 캔들을 여는 순간(즉, 주문이 열린 캔들 다음), 나는 LoY[1]를 얻습니다.
그리고 나서 논리를 켜고 결론을 내립니다.
1. X = LoY[1]인 경우 형성 후 주문이 열렸습니다.   개봉한 LoY 양초
2. LoY[1]< X 이면, 주문 개시 후 가격 이 다시 하락하여 X 아래로 떨어졌습니다 . 이것은 이 양초의 LoY[] 형성 이전에 주문이 열렸음을 의미합니다.
나는 주문이 언제 열렸는지 알기 위해서만 LOW 시간이 필요했습니다... LOW 양초 형성 전 또는 후에.
그리고 1분 캔들에 대한 모든 주문은 2p의 차이로 다른 것보다 하나 더 높게 열립니다. 즉, 첫 번째 촛불이 열렸을 때 이 촛불의 다른 사람들도 열렸습니다.
도와 주셔서 감사합니다.

하지만 이 주제에 대해 한 가지 더 질문이 있습니다.
여기에서 X의 가격으로 미닛 캔들에 대한 주문이 시작되었습니다. 몇 초 후 같은 양초에서 X + 2포인트의 가격으로 또 다른 주문이 열렸습니다. X와 X+2 사이에는 최소 가격이 있습니다.
그리고 이 최소값을 알아야 합니다. 다른 양초에 대해 이야기하는 경우 iLow 및 iLowest 기능을 사용합니다.
그러나 이러한 함수에서는 막대를 구간의 경계로 지정해야 합니다. 그리고 내 간격 경계는 막대가 아니라 가격이 X 및 X + 2 입니다. 막대가 하나만 있기 때문입니다.
나는 내가 필요한 최소값을 찾는 방법을 알고 있습니다. 그러나 이를 위해서는 각 틱에서 가격 값을 추적해야 합니다. X + 2 가 형성되는 순간에 루프로 하는 방법도 알고 있고 , iLow 와 iLowest 를 사용하는 경우처럼 X + 2 가 형성되는 동안 한번에 즉시 하는 방법 (즉시, 한 번에) .
이것을 가르쳐 주시면 정말 감사하겠습니다.
감사해요

파일에 틱 쓰기
 
MakarFX :
파일에 틱 쓰기

저에게 새로운 정보를 주셔서 감사합니다. 나는 파일에 틱을 쓴 적이 없습니다. 이 작업이 어떻게 수행되는지 이해하려면 이에 대한 자세한 내용을 어디에서 읽을 수 있습니까?

? 그리고 또 다른 질문 ..... 틱으로 배열을 정렬하고 최소 가격 값으로 틱을 가져와야 할 때 가격으로 틱 배열에 쓸 수 있습니까? 또는 도움으로

배열최소


도와 주셔서 감사합니다.

 
ANDREY :

저에게 새로운 정보를 주셔서 감사합니다. 나는 파일에 틱을 쓴 적이 없습니다. 이 작업이 어떻게 수행되는지 이해하려면 이에 대한 자세한 내용을 어디에서 읽을 수 있습니까?

? 그리고 또 다른 질문 ..... 틱으로 배열을 정렬하고 최소 가격 값으로 틱을 가져와야 할 때 가격으로 틱 배열에 쓸 수 있습니까? 또는 도움으로

배열최소


도와 주셔서 감사합니다.

FileWriteString 에 쓰기

일반적으로 무엇이 필요한지 이해하기 어렵습니다.

 
MakarFX :

FileWriteString 에 쓰기

일반적으로 필요한 것이 무엇인지 이해하기 어렵습니다.

여기에서 X의 가격으로 미닛 캔들에 대한 주문이 시작되었습니다. 몇 초 후 같은 양초에서 X + 2포인트의 가격으로 또 다른 주문이 열렸습니다. X와 X+2 사이에는 최소 가격이 있습니다.
그리고 이 최소값을 알아야 합니다. 다른 양초에 대해 이야기하는 경우 iLow 및 iLowest 기능을 사용합니다.
그러나 이러한 함수에서는 막대를 구간의 경계로 지정해야 합니다. 그리고 내 간격 경계는 막대가 아니라 가격   X 및 X+2   바가 하나뿐이기 때문입니다.
나는 내가 필요한 최소값을 찾는 방법을 알고 있습니다. 그러나 이를 위해서는 각 틱에서 가격 값을 추적해야 합니다. 결성시에 루프로 하는 방법을 안다   X+2   그리고 iLow 와 iLowest 를 사용하는 경우 처럼 X + 2 가 형성되는 동안 한 번에 즉시 수행하는 방법 (즉시 및 한 번에).
이것을 가르쳐 주시면 정말 감사하겠습니다.
감사해요
 
ANDREY :

저에게 새로운 정보를 주셔서 감사합니다. 나는 파일에 틱을 쓴 적이 없습니다. 이 작업이 어떻게 수행되는지 이해하려면 이에 대한 자세한 내용을 어디에서 읽을 수 있습니까?

? 그리고 또 다른 질문 ..... 틱으로 배열을 정렬하고 최소 가격 값으로 틱을 가져와야 할 때 가격으로 틱 배열에 쓸 수 있습니까? 또는 도움으로

배열최소


도와 주셔서 감사합니다.

할 수 있다. 함수를 사용하여 .bin 파일에 쓰기만 하면 됩니다.

 uint    FileWriteArray ( 
   int           file_handle,         // handle файла 
   const void &  array[],             // массив 
   int           start= 0 ,             // начальный индекс в массиве 
   int           count= WHOLE_ARRAY      // количество элементов 
   );

그리고 읽기

 uint    FileReadArray ( 
   int     file_handle,               // handle файла 
   void &  array[],                   // массив для записи 
   int     start= 0 ,                   // стартовая позиция для записи в массив 
   int     count= WHOLE_ARRAY            // сколько читать 
   );
 
Alexey Viktorov :

할 수 있다. 함수를 사용하여 .bin 파일에 쓰기만 하면 됩니다.

그리고 읽기

저를 위한 새로운 정보 감사합니다 .... 새롭기만 한게 아니라 .... 너무 새롭죠? :=) 저도 한번 배워보겠습니다 ....

 
ANDREY :

저를 위한 새로운 정보 감사합니다 .... 새롭기만 한게 아니라 .... 너무 새롭죠? :=) 저도 한번 배워보겠습니다 ....

여기 새로운 기능은 무엇입니까??? 문서를 열고 헤더를 읽고 "파일 작업" 섹션을 찾으면 FileWriteArray() 를 포함한 다양한 기능에 대한 설명이 있습니다.

문서를 더 자주 읽어야 한다는 사실을 알게 된 것은 이번이 처음이 아닙니다. 당장 필요한 것이 없더라도 말이다. 섹션 제목을 읽고 나면 설명서에 설명된 내용을 이해할 수 있습니다. 무엇보다 먼저 필요합니다.

 
Alexey Viktorov :

여기 새로운 기능은 무엇입니까??? 문서를 열고 헤더를 읽고 "파일 작업" 섹션을 찾으면 FileWriteArray() 를 포함한 다양한 기능에 대한 설명이 있습니다.

문서를 더 자주 읽어야 한다는 사실을 알게 된 것은 이번이 처음이 아닙니다. 당장 필요한 것이 없더라도 말이다. 섹션 제목을 읽고 나면 설명서에 설명된 내용을 이해할 수 있습니다. 무엇보다 먼저 필요합니다.

소중한 조언 감사합니다. 이제 나는 답을 모르는 어떤 종류의 질문을 만났을 때 코드 작성과 병행해서만 문서를 읽습니다. 과거 코드를 작성하면서 파일에 데이터를 써야 하는 경우는 한 번도 없었기 때문에 완전히 새로운 주제입니다.
파일에 쓰지 않고 내 아이디어를 더 쉽게 구현할 수 없습니까? 내 코드처럼. 이것은 작동하는 코드가 아니지만 1분 캔들에서 열린 인접 주문 사이의 최소값을 찾는 방법에 대한 내 아이디어를 설명하기 위해
도와 주셔서 감사합니다

 double P[ 60 ],Z;
int Tick,x,x1,G,G1,G2,T;

void OnTick ()
{
Tick++;

if ( OrdersTotal ()== 1 &&Tick< 2189 )
{
P[x]=Bid;
Print ( "------------------------P[x]=Bid------------------------=" , DoubleToString (P[x], 5 ), "  x " ,  x);
x++;
}
if ( OrdersTotal ()== 2 &&Tick== 2189 )
{
x1=x;
x= 0 ;
ArraySort (P, WHOLE_ARRAY , 0 ,MODE_ASCEND);
T=( 60 -x1);
Print ( "------------------------МИНИМУМ=------------------------=" , DoubleToString (P[T], 5 ), "  Tick " ,  Tick, "  x1 " ,  x);
}

if (Tick== 2176 ||Tick== 2188 )
{
OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 ,Ask+ 300 * Point ,Ask- 100 * Point , "300" , 0 );
G2=G;
G=Tick;
}
}

즉, 각 틱의 가격을 파일이 아닌 배열에 즉시 썼습니다.

 
ANDREY :

당신의 도움과 저에게 새로운 정보를 주셔서 감사합니다. 그러나 그것은 나를 깨우쳤고 훨씬 더 쉬운 방법이 마음에 떠올랐습니다 ....
1. 미닛 캔들에 대한 1차 주문 이 시작 되는 동안, 이 1차 주문을 열 때 이 캔들의 변수 X LOW를 기억합니다.
2. 제로 캔들을 여는 순간(즉, 주문이 열린 캔들 다음), 나는 LoY[1]를 얻습니다.
그리고 나서 논리를 켜고 결론을 내립니다.
1. X = LoY[1]인 경우 주문은 형성 후에 열렸습니다.   개봉한 LoY 양초
2. LoY[1]< X 이면, 주문 개시 후 가격 이 다시 하락하여 X 아래로 떨어졌습니다 . 이것은 이 양초의 LoY[] 형성 이전에 주문이 열렸음을 의미합니다.

글쎄, 첫 번째 순서에서 어떤 종류의 변화 x low가 명확하지 않습니다. 시간인가 가격인가. 등등. 진드기가 있습니다. 가격을 확인하고 시간을 수정할 수 있지만 새 주문을 기다리고 있습니다. 그런 다음 최대 또는 최소 눈금의 시간을 묻습니다. 틱 그와 아프리카 틱.