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

 

주문이 열리지 않는 이유!

이 코드가 작동하지 않는 이유를 알려주세요.

나는 특별히 배열의 값 중에서 발생하는 가격으로 열리는 양초가있는 2000 년 차트의 기간 (5 번째 숫자가 모든 곳에서 0과 같을 때)을 선택했습니다.

내 계획에 따르면 - 주문은 개장 시 작동해야 하지만 이것은 일어나지 않습니다 ...... 왜????


 int start()



{

 double Price=iOpen ( Symbol (), 0 , 0 );        
 double SL= NormalizeDouble (Price- 3000 * Point , Digits );         
 double TP= NormalizeDouble (Price+ 100 * Point , Digits );
 
 double massiv [ 4 ]={ 0.85370 , 0.85690 ,     0.85970 , 0.86170 }; //объявление и инициализация массива


 double value =  Bid ; // параметру value функции ArrayBsearch присваивается значение текущей цены
 int S = ArrayBsearch (  massiv[ 4 ],  value, WHOLE_ARRAY ,   0 , MODE_ASCEND); //функция ищет самое близкое к текущей цене значение
 if (Bid == massiv[S]) //если текущая цена равна значению возвращенному  функцией .
 if (Bid==Price  ) // и данная цена есть цена открытия нового бара
 OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,SL,TP, "jfh" , 123 ); //открыть ордер       
}
 
solnce600 :

첫 번째 숫자(즉, 가격) 뒤에 쉼표가 있는 줄에 100개의 값이 있습니다.

나는 선을 선택한다

홈 - 찾기 및 바꾸기

모든 쉼표를 점으로 변경합니다.

이제 값 사이에 쉼표를 넣어야 합니다.

이제 다음과 같습니다. 파일 - 다른 이름으로 저장 - CSV(구분 기호 - 쉼표) 파일 형식을 선택합니다. 구하다. 출력에 원하는 형식의 텍스트 파일이 있습니다 ...

 
solnce600 :

주문이 열리지 않는 이유!

이 코드가 작동하지 않는 이유를 알려주세요.

나는 특별히 배열의 값 중에서 발생하는 가격으로 열리는 양초가있는 2000 년 차트의 기간 (5 번째 숫자가 모든 곳에서 0과 같을 때)을 선택했습니다.

내 계획에 따르면 - 주문은 개장 시 작동해야 하지만 이것은 일어나지 않습니다 ...... 왜????



 int S = ArrayBsearch (   massiv ,  value, WHOLE_ARRAY ,   0 , MODE_ASCEND); //функция ищет самое близкое к текущей цене значение

Massiv[4] 는 Massiv 배열의 4번째 요소를 의미하지만 검색이 가능하도록 배열 자체를 함수에 전달해야 합니다...

 
alsu :

이제 다음과 같습니다. 파일 - 다른 이름으로 저장 - CSV(구분 기호 - 쉼표) 파일 형식을 선택합니다. 구하다. 출력에 원하는 형식의 텍스트 파일이 있습니다 ...



알겠습니다. 감사합니다. 제 기능이 작동하지 않는 이유를 알려주세요(위의 게시물).

정말 감사합니다..프로그래밍을 배운다면.....그저 당신 덕분에.....!

 
solnce600 :

주문이 열리지 않는 이유!

이 코드가 작동하지 않는 이유를 알려주세요.

나는 특별히 배열의 값 중에서 발생하는 가격으로 열리는 양초가있는 2000 년 차트의 기간 (5 번째 숫자가 모든 곳에서 0과 같을 때)을 선택했습니다.

내 계획에 따르면 - 주문은 개장 시 작동해야 하지만 이것은 일어나지 않습니다 ...... 왜????


대신 쓰기 위해 이중 숫자를 비교할 때도 좋을 것입니다.

 if (Bid == massiv[S])

이와 같이:

 if ( NormalizeDouble (Bid-massiv[S], Digits )== 0 )
 
alsu :

Massiv[4]는 Massiv 배열의 4번째 요소를 의미하지만 검색이 가능하도록 배열 자체를 함수에 전달해야 합니다...

알겠습니다. 감사합니다.
 
solnce600 :

주문이 열리지 않는 이유!

이 코드가 작동하지 않는 이유를 알려주세요.

나는 특별히 배열의 값 중에서 발생하는 가격으로 열리는 양초가있는 2000 년 차트의 기간 (5 번째 숫자가 모든 곳에서 0과 같을 때)을 선택했습니다.

내 계획에 따르면 - 주문은 개장 시 작동해야 하지만 이것은 일어나지 않습니다 ...... 왜????

이제 "성인" 방법으로 넘어갈 시간입니다! - 코드를 실험하여 결과를 얻으십시오.

팁: 차이를 정규화하여 변수를 비교하는 데 익숙해지십시오.

     double ld_Delta = 10 . * Point ;
     if (NormalizeDouble ( MathAbs (Bid - Price), Digits) <= ld_Delta) // и данная цена есть цена открытия нового бара
    { OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,SL,TP, "jfh" , 123 );} //открыть ордер       

그리고 내가 언급한 실험을 위해 ld_Delta를 사용하여 "놀이를 해보세요".

 
solnce600 :

알겠습니다. 감사합니다. 제 기능이 작동하지 않는 이유를 알려주세요(위의 게시물).

정말 감사합니다..프로그래밍을 배운다면.....그저 당신 덕분에.....!


배우면 인내와 근면 덕분입니다. 내 역할은 매우 겸손하고 목표는 이기적입니다(당신을 도우면서 나는 오류와 단점을 빠르게 찾는 능력을 훈련시켜 프로그래밍에 소비하는 시간을 줄이고 동시에 모스크바를 좋은 상태로 유지합니다. , 갑자기 귀중한 아이디어가 미끄러 져? 내가 훔칠거야 :) ))
 
포함하다
alsu :

배우면 인내와 근면 덕분입니다. 내 역할은 매우 겸손하고 목표는 이기적입니다(당신을 도우면서 나는 오류와 단점을 빠르게 찾는 능력을 훈련시켜 프로그래밍에 소비하는 시간을 줄이고 동시에 모스크바를 좋은 상태로 유지합니다. , 갑자기 귀중한 아이디어가 미끄러 져? 내가 훔칠거야 :) ))

검증된 조언 - 학습 과정의 속도를 크게 높입니다. 입력하면 질문에 대한 답변을 오랫동안 검색할 수 있습니다(공부 방향을 모르기 때문에)

더 알려주세요

포함 파일에서 배열을 선언하고 초기화 하고 싶습니다.

마스터라고 합니다.

선택됨 - 함수 라이브러리

이름을 할당했습니다.

모든 것을 제거하고 배열을 선언하고 초기화했습니다.

파일을 incluide 폴더에 저장했는데 mqh가 아닌 mq4 확장자로 저장되었습니다.

파일 호출 라인을 코드에 삽입하고 mqh 확장자를 지정했습니다.

그러나 컴파일러는 불평합니다.

'UYTR.mqh' - 프로그램 파일을 열 수 없습니다 C:\Program Files\Alpari NZ MT4(2)\experts\hhhh.mq4 (12, 2)

 int start()



{

 double Price=iOpen ( Symbol (), 0 , 0 );        
 double SL= NormalizeDouble (Price- 3000 * Point , Digits );         
 double TP= NormalizeDouble (Price+ 100 * Point , Digits );
 
 #include <UYTR.mqh> 


 double value =  Bid ; // параметру value функции ArrayBsearch присваивается значение текущей цены
 int S = ArrayBsearch (  massiv,  value, WHOLE_ARRAY ,   0 , MODE_ASCEND); //функция ищет самое близкое к текущей цене значение
 if (Bid == massiv[S]) //если текущая цена равна значению возвращенному  функцией .
 if (Bid==Price  ) // и данная цена есть цена открытия нового бара
 OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,SL,TP, "jfh" , 123 ); //открыть ордер       
}

코드의 호출에 있는 파일과 incluide 폴더에 있는 파일 간의 확장자가 일치하지 않는 문제일 수 있습니다.

이 상황에서 어떻게 해야 하는지 알려주세요.

고맙습니다.

 
solnce600 :
포함하다

검증된 조언 - 학습 과정의 속도를 크게 높입니다. 입력하면 질문에 대한 답변을 오랫동안 검색할 수 있습니다(공부 방향을 모르기 때문에)

더 알려주세요

포함 파일에서 배열을 선언하고 초기화하고 싶습니다.

마스터라고 합니다.

선택됨 - 함수 라이브러리

이름을 할당했습니다.

모든 것을 제거하고 배열을 선언하고 초기화했습니다.

파일을 incluide 폴더에 저장했는데 mqh가 아닌 mq4 확장자로 저장되었습니다.

파일 호출 라인을 코드에 삽입하고 mqh 확장자를 지정했습니다.

그러나 컴파일러는 불평합니다.

'UYTR.mqh' - 프로그램 파일을 열 수 없습니다 C:\Program Files\Alpari NZ MT4(2)\experts\hhhh.mq4 (12, 2)

코드의 호출에 있는 파일과 incluide 폴더에 있는 파일 간의 확장자가 일치하지 않는 문제일 수 있습니다.

이 상황에서 어떻게 해야 하는지 알려주세요.

고맙습니다.


마법사를 통해 즉시 포함 파일을 생성할 수 있는 기회가 있으며 이 파일은 포함 폴더에 mqh 확장자로 저장됩니다. 그런 다음 #include <>를 사용하여 모든 프로그램에 추가할 수 있습니다.


선택되지 않음 - 함수 라이브러리,
MQH 헤더 파일