int mas[ 3 ]={ 0 }; // инициализация масива
..... // основной код
if ( найдена новая величина а )
{ mas[ 2 ]=mas[ 1 ]; // самая старая величина а
mas[ 1 ]=mas[ 0 ];
mas[ 0 ]=a; // новая величина а
}
..... // основной код
그것이 바로 그것입니다. 코드의 논리는 동일합니다. 조건을 분할하면 논리 오류가 있는 위치를 빠르게 찾을 수 있습니다.
별도의 조건으로 코드 최적화 를 수행합니다. 조건은 귀하의 예에서와 같이 4번이 아니라 한 번 확인됩니다.
다음을 통해 전문가 저널에 결과물 제출
코드의 어느 부분이 실행되고 어떤 매개변수가 있는지 보기 위해 로그를 작성합니다.
답변 해주셔서 감사합니다. 조건을 극한까지 짓밟았다. 댓글로 논리를 확인했습니다. 첫 번째 오픈 포지션을 청산하기 위한 조건에 따라 포지션이 청산되는 것으로 밝혀졌다. 즉, 폐쇄 조건이 1인 BUY 또는 CELL을 처음 개설한 다음 두 번째 유사한 위치가 열렸지만 폐쇄 조건이 2인 경우 이 폐쇄 조건은 무시되고 두 번째 위치는 다른 마법에도 불구하고 , 또한 조건 1에 따라 닫힙니다. 그리고 어떻게 해야 합니까?
코드의 전체 논리를 모르지만 각 주문이 닫힌 후 break를 통해 루프를 종료 해야 합니다. 다음 틱에서 조건에 대한 주문을 다시 확인합니다 . 주문이 마감된 후OrderSelect() 가 어떻게 작동하는지 모르겠습니다. 주문이 마감된 경우 동일한 항목이 선택되었습니까? 아니면 오류가 발생합니까?
여기에서 원칙적으로 문제는 한 번에 모든 것을 확인하고 닫으려는 것입니다. 몇 가지 솔루션이 있습니다. 사용
스위치()
또는 함수에서 주문 마감을 정렬합니다(주문을 위한 기성품 기능이 있습니다 https://www.mql5.com/en/forum/131859/page2#434206 )
코드의 전체 논리를 모르지만 각 주문이 닫힌 후 break를 통해 루프를 종료 해야 합니다. 다음 틱에서 조건에 대한 주문을 다시 확인합니다 . 주문이 마감된 후OrderSelect() 가 어떻게 작동하는지 모르겠습니다. 주문이 마감된 경우 동일한 항목이 선택되었습니까? 아니면 오류가 발생합니까?
여기에서 원칙적으로 문제는 한 번에 모든 것을 확인하고 닫으려는 것입니다. 몇 가지 솔루션이 있습니다. 사용
스위치()
또는 기능으로 주문을 마감합니다(주문을 위한 기성품 기능이 있습니다 https://www.mql5.com/ru/forum/107476 )
사람들은 그러한 질문을 가지고 있습니다. 변수의 값을 1차원 배열에 넣는 방법은 무엇입니까?
도움말을 보내지 마십시오. 유사한 작업에 대한 예가 없습니다.
특정 조건에서 변경되는 변수가 있다고 가정해 보겠습니다.
이 변수의 마지막 3개 값을 배열에 기록해야 합니다. mql4에서는 어떻게 구현됩니까?
나는 int mas[3]를 씁니다.
매스[]=a; 변경되는 조건 후 루프 내부,
논리적으로 해야 하지만 nifiga는 작동하지 않습니다. 컴파일러가 ']'를 발행합니다. 표현식이 예상됩니다. 대괄호 안의 mas[]=a에 알 수 없는 표현식을 넣어야 합니다.
루프의 각 반복에서 변수 값으로 배열을 채우는 MQL4의 함수가 있습니까?
서신의 시작 부분을 찾지 못해 죄송하지만 복잡한 조건과 계산을 피하도록 즉시 조언하고 싶습니다. 이는 코드를 읽을 수 없게 만들고 결과적으로 논리적 오류 검색을 복잡하게 만듭니다. 다음과 같은 코드:
위태로운 것이 무엇인지 이해 한다면 내가 제공한 코드를 조금 더 수정할 수 있습니다. ( OrderType () == OP_BUY....
그러면 논리적 오류를 찾는 것이 훨씬 쉬울 것입니다. IMHO
각 OrderSend => return 뒤에 삽입
또는 스위치를 통해 선택하십시오.
시도하고 작동하지 않습니다.
사용자 지정 표시기 호출에 입력 매개변수가 거의 없습니다 . 모닝 플랫 표시기에 외부 변수가 몇 개 있는지 계산합니까? (extern) - iCustom을 사용할 때 전달해야 하는 동일한 수의 매개변수입니다.
.....
나는 int mas[3]=a; 변경되는 조건 후 루프 내부,
논리적으로 해야 하지만 nifiga는 작동하지 않습니다.
한 번에 모든 작업을 수행하는 것이 아니라 단계별로 수행하는 방법을 배웁니다.
예시 :
사용자 지정 표시기 호출에 입력 매개변수가 거의 없습니다 . 모닝 플랫 표시기에 외부 변수가 몇 개 있는지 계산합니까? (extern) - iCustom을 사용할 때 전달해야 하는 동일한 수의 매개변수입니다.
나는 이미 그들 모두를 겪었습니다.
다른 방식으로 문제를 해결했습니다. 지표에서 Expert Advisor로 가격을 계산하는 코드를 삽입했습니다.
그것이 바로 그것입니다. 코드의 논리는 동일합니다. 조건을 분할하면 논리 오류가 있는 위치를 빠르게 찾을 수 있습니다.
별도의 조건으로 코드 최적화 를 수행합니다. 조건은 귀하의 예에서와 같이 4번이 아니라 한 번 확인됩니다.
다음을 통해 전문가 저널에 결과물 제출
코드의 어느 부분이 실행되고 어떤 매개변수가 있는지 보기 위해 로그를 작성합니다.
답변 해주셔서 감사합니다. 조건을 극한까지 짓밟았다. 댓글로 논리를 확인했습니다. 첫 번째 오픈 포지션을 청산하기 위한 조건에 따라 포지션이 청산되는 것으로 밝혀졌다. 즉, 폐쇄 조건이 1인 BUY 또는 CELL을 처음 개설한 다음 두 번째 유사한 위치가 열렸지만 폐쇄 조건이 2인 경우 이 폐쇄 조건은 무시되고 두 번째 위치는 다른 마법에도 불구하고 , 또한 조건 1에 따라 닫힙니다. 그리고 어떻게 해야 합니까?
나는 이미 그들 모두를 겪었습니다.
다른 방식으로 문제를 해결했습니다. 지표에서 Expert Advisor로 가격을 계산하는 코드를 삽입했습니다.
글쎄, 그래서 나는 당신이 iCustom()을 올바르게 호출하지 않았다는 것을 알아차렸다. 그것은 다음과 같아야 한다:
표시기를 호출 할 때 7개의 매개변수를 전달하고 3개의 매개변수로 호출했습니다.
표시기 호출은 그대로 두고 표시기 자체를 수정합니다. 표시기 코드에서 불필요한 외부 변수와 그래픽 개체를 제거합니다.
댓글로 논리를 확인했습니다. 첫 번째 오픈 포지션을 청산하기 위한 조건에 따라 포지션이 청산되는 것으로 밝혀졌다.
축하합니다! 올바른 방향으로 가고 있지만 디버깅 단계에서 주석( Commetn() ) 대신 로그(Print())에 출력하는 것이 좋습니다.
코드를 보여줘
글쎄, 그래서 나는 당신이 iCustom()을 올바르게 호출하지 않았다는 것을 알아차렸다. 그것은 다음과 같아야 한다:
표시기를 호출 할 때 7개의 매개변수를 전달하고 3개의 매개변수로 호출했습니다.
표시기 호출은 그대로 두고 표시기 자체를 수정합니다. 표시기 코드에서 불필요한 외부 변수와 그래픽 개체를 제거합니다.
축하합니다! 올바른 방향으로 가고 있지만 디버깅 단계에서 주석( Commetn() ) 대신 로그(Print())에 출력하는 것이 좋습니다.
코드를 보여줘
제거된 지문입니다.
제거된 지문입니다.
코드의 전체 논리를 모르지만 각 주문이 닫힌 후 break를 통해 루프를 종료 해야 합니다. 다음 틱에서 조건에 대한 주문을 다시 확인합니다 . 주문이 마감된 후 OrderSelect() 가 어떻게 작동하는지 모르겠습니다. 주문이 마감된 경우 동일한 항목이 선택되었습니까? 아니면 오류가 발생합니까?
여기에서 원칙적으로 문제는 한 번에 모든 것을 확인하고 닫으려는 것입니다. 몇 가지 솔루션이 있습니다. 사용
스위치()
또는 함수에서 주문 마감을 정렬합니다(주문을 위한 기성품 기능이 있습니다 https://www.mql5.com/en/forum/131859/page2#434206 )
또는 코드에서 주문을 종료한 후 break를 사용하십시오.
코드의 전체 논리를 모르지만 각 주문이 닫힌 후 break를 통해 루프를 종료 해야 합니다. 다음 틱에서 조건에 대한 주문을 다시 확인합니다 . 주문이 마감된 후 OrderSelect() 가 어떻게 작동하는지 모르겠습니다. 주문이 마감된 경우 동일한 항목이 선택되었습니까? 아니면 오류가 발생합니까?
여기에서 원칙적으로 문제는 한 번에 모든 것을 확인하고 닫으려는 것입니다. 몇 가지 솔루션이 있습니다. 사용
스위치()
또는 기능으로 주문을 마감합니다(주문을 위한 기성품 기능이 있습니다 https://www.mql5.com/ru/forum/107476 )
또는 코드에서 주문을 닫은 후 break를 사용하십시오.
고맙습니다. 휴식이 도움이 된 것 같습니다. 다음에 무슨 일이 일어날지 봅시다.