조건에 엄격한 분리가 없기 때문에(그리고 요소 중 하나 이상이 참이면 항상 참임) 개발자 사이트에서 이 조건을 처리하는 가장 논리적인 것은 먼저 분자를 나누는 것입니다 (a>b || c>d) 원자 "a >b" 및 "c>d"로 변환한 다음, 진실을 확인하기 위해 원자를 순차적으로 열거하는 주기를 구성합니다. 그리고 다음 원자가 참이면 즉시 주기를 중단하여 프로그램이 조건 대괄호 바로 밖에 있는 작업을 수행할 수 있도록 합니다. 즉, 더 이상 필요하지 않기 때문에 나머지 원자를 거치지 않습니다. 그리고 여기에서 우리가 원자를 처음부터 끝까지 또는 생성된 원자 목록의 끝에서 시작까지 통과하는지 여부는 중요하지 않습니다. 개발자(메타따옴표)만 검색 방향을 표시할 수 있습니다. 그리고 왜 그것을 필요로 했습니까? 자신의 컴파일러를 작성하고 있습니까?
TS 논리에서 조건 a>b 가 c>d ==true보다 훨씬 더 자주 참이면 이 두 조건의 참을 확인하는 순서가 프로그램 속도를 높이는 데 중요할 수 있습니다.
artmedia70 : TS 논리에서 조건 a>b 가 c>d ==true보다 훨씬 더 자주 참이면 이 두 조건의 참을 확인하는 순서가 프로그램 속도를 높이는 데 중요할 수 있습니다.
표현식은 실제로 다음과 같습니다. if(a>b || (a<=b && c>d)) . 진리가 왼쪽에서 오른쪽으로 확인되면 a<=b 표현식은 프로그램 속도를 높이는 면에서 중복됩니다. 문제는 왼쪽에서 오른쪽으로 또는 그 반대로, 또는 다른 경우에 다른 방식으로라는 것이었습니다.
표현식은 실제로 다음과 같습니다. if(a>b || (a<=b && c>d)) . 진리가 왼쪽에서 오른쪽으로 확인되면 a<=b 표현식은 프로그램 속도를 높이는 면에서 중복됩니다. 문제는 왼쪽에서 오른쪽으로 또는 그 반대로, 또는 다른 경우에 다른 방식으로라는 것이었습니다.
포지션 오픈 시간과 현재 바 Time[0]의 오픈 시간을 비교할 필요가 있습니다. 포지션 오픈 시간이 바 오픈 시간보다 크거나 같으면 EA는 새로운 포지션을 열지 않습니다. 새 막대가 나타날 때 시간[0]은 값을 나중으로 변경하고 이러한 비교는 현재(새) 막대에서 아직 열리지 않은 위치를 보여주고 거래가 가능합니다.
그건 그렇고, 귀하의 질문은 2개의 하위 질문으로 더 나눌 수 있습니다. 1. 현재 바에서 포지션이 열렸고 마감에 성공했지만, 우리는 여전히 새로운 바를 기다리고 있습니다. 2. 현재 바에서 포지션이 열렸고 닫을 수 있었습니다. 그런 다음 같은 바에서 다시 포지션을 열 수 있습니다(즉, 1개의 바에서 동시에 1개의 포지션을 열 수 있음).
일반적으로 이러한 문제: 같은 막대에서 몇 분 동안 주문을 여는 조건이 true가 되어 주문이 열립니다. 그런 다음 넘어지고 다시 문지르면 두 번째 주문이 열립니다. 그것을 처리하는 방법? 나는 한 번만 주문을 여는 방법을 생각해 냈습니다. 아마도 다른 옵션이 있습니까?
GarKain : 일반적으로 이러한 문제: 같은 막대에서 몇 분 동안 주문을 여는 조건이 true가 되어 주문이 열립니다. 그런 다음 넘어지고 다시 문지르면 두 번째 주문이 열립니다. 그것을 처리하는 방법? 나는 한 번만 주문을 여는 방법을 생각해 냈습니다. 아마도 다른 옵션이 있습니까?
나는 당신이 포지션을 여는 것을 허용/거부하는 플래그를 사용하고 있다는 것을 알았습니다. 깃발의 상태를 모르면 아무 것도 제안할 수 없습니다. 내 Expert Advisor에서 포지션을 열 때 두 번째 접근 방식을 사용하며 다음 코드를 제공할 수 있습니다.
if ( OrdersTotal ()> 0 )
{ for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{ if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
{ if ( OrderSymbol ()== Symbol ())
{ if ( OrderMagicNumber ()==MagNum) // Проверка соответствия позиции по магик-номеру
{ Closed_bar= OrderOpenTime ();
if (Closed_bar>= iTime ( NULL , PERIOD_H1 , 0 ))
return ( 0 );
} }
} } }
일반적으로 <=가 사용됩니다. 또는 >=. 두 경우 모두 구현은 하드웨어이며 Metaquotes는 이와 관련이 없습니다.
다른 언어의 개발자도 그것과 아무 관련이 없습니다. 기본 동작. +와 -처럼.
조건에 엄격한 분리가 없기 때문에(그리고 요소 중 하나 이상이 참이면 항상 참임) 개발자 사이트에서 이 조건을 처리하는 가장 논리적인 것은 먼저 분자를 나누는 것입니다 (a>b || c>d) 원자 "a >b" 및 "c>d"로 변환한 다음, 진실을 확인하기 위해 원자를 순차적으로 열거하는 주기를 구성합니다. 그리고 다음 원자가 참이면 즉시 주기를 중단하여 프로그램이 조건 대괄호 바로 밖에 있는 작업을 수행할 수 있도록 합니다. 즉, 더 이상 필요하지 않기 때문에 나머지 원자를 거치지 않습니다. 그리고 여기에서 우리가 원자를 처음부터 끝까지 또는 생성된 원자 목록의 끝에서 시작까지 통과하는지 여부는 중요하지 않습니다. 개발자(메타따옴표)만 검색 방향을 표시할 수 있습니다. 그리고 왜 그것을 필요로 했습니까? 자신의 컴파일러를 작성하고 있습니까?
TS 논리에서 조건 a>b 가 c>d ==true보다 훨씬 더 자주 참이면 이 두 조건의 참을 확인하는 순서가 프로그램 속도를 높이는 데 중요할 수 있습니다.
표현식은 실제로 다음과 같습니다. if(a>b || (a<=b && c>d)) . 진리가 왼쪽에서 오른쪽으로 확인되면 a<=b 표현식은 프로그램 속도를 높이는 면에서 중복됩니다. 문제는 왼쪽에서 오른쪽으로 또는 그 반대로, 또는 다른 경우에 다른 방식으로라는 것이었습니다.
표현식은 실제로 다음과 같습니다. if(a>b || (a<=b && c>d)) . 진리가 왼쪽에서 오른쪽으로 확인되면 a<=b 표현식은 프로그램 속도를 높이는 면에서 중복됩니다. 문제는 왼쪽에서 오른쪽으로 또는 그 반대로, 또는 다른 경우에 다른 방식으로라는 것이었습니다.
이유가 무엇인지 알려주십시오. 고문이 주문을 열지 않고 오류 133 을 씁니다.
포지션 오픈 시간과 현재 바 Time[0]의 오픈 시간을 비교할 필요가 있습니다. 포지션 오픈 시간이 바 오픈 시간보다 크거나 같으면 EA는 새로운 포지션을 열지 않습니다. 새 막대가 나타날 때 시간[0]은 값을 나중으로 변경하고 이러한 비교는 현재(새) 막대에서 아직 열리지 않은 위치를 보여주고 거래가 가능합니다.
그건 그렇고, 귀하의 질문은 2개의 하위 질문으로 더 나눌 수 있습니다.
1. 현재 바에서 포지션이 열렸고 마감에 성공했지만, 우리는 여전히 새로운 바를 기다리고 있습니다.
2. 현재 바에서 포지션이 열렸고 닫을 수 있었습니다. 그런 다음 같은 바에서 다시 포지션을 열 수 있습니다(즉, 1개의 바에서 동시에 1개의 포지션을 열 수 있음).
일반적으로 이러한 문제: 같은 막대에서 몇 분 동안 주문을 여는 조건이 true가 되어 주문이 열립니다. 그런 다음 넘어지고 다시 문지르면 두 번째 주문이 열립니다. 그것을 처리하는 방법? 나는 한 번만 주문을 여는 방법을 생각해 냈습니다. 아마도 다른 옵션이 있습니까?
나는 당신이 포지션을 여는 것을 허용/거부하는 플래그를 사용하고 있다는 것을 알았습니다. 깃발의 상태를 모르면 아무 것도 제안할 수 없습니다. 내 Expert Advisor에서 포지션을 열 때 두 번째 접근 방식을 사용하며 다음 코드를 제공할 수 있습니다.
디트렌딩 이 뭐야??? "시도 그만" 같은 건가요?
저역 통과 필터를 계열에 적용하면 == 추세(기울기) 구성 요소를 뺍니다. 가장 간단한 예: 가격에 이동 평균을 적용한 다음 별도의 창에 차이를 표시합니다.
나는 당신이 포지션을 여는 것을 허용/거부하는 플래그를 사용하고 있다는 것을 알았습니다. 깃발의 상태를 모르면 아무 것도 제안할 수 없습니다. 내 Expert Advisor에서 포지션을 열 때 두 번째 접근 방식을 사용하며 다음 코드를 제공할 수 있습니다.
어디서, 어디에 있는지 잘 이해가 되지 않았습니다.
그렇다면 그것은 사실이다.
true이면 주문이 열립니다.
라고 적으면 주문이 열립니다. 이것이 문제를 해결할까요?