point=MarketInfo( Symbol (),MODE_POINT); /* поскольку это ровным счетом то же самое, что штатный параметр */ Point
다중 통화 전략이 있는 경우에만 필요하지만 대신
Symbol ()
다른 미리 결정된 값으로 대체해야 하지만 이 일반 기능은 대체할 필요가 없습니다.
또한 이 변수는 중복됩니다.
total= OrdersTotal ();
왜냐하면 함수 내에서 열거형에서 한 번만 사용합니다. 어떤 이유에서인지 주석 처리되어 코드만 복잡해집니다. - 그래서 질문 - 왜 주문에 의한 검색이 주석 처리 되었습니까?
이것:
if (cmd==OP_BUY) stop_loss=OrderOpenPrice()- STOP *point;
else stop_loss=OrderOpenPrice()+ STOP *point;
if (cmd==OP_BUY) take_profit=OrderOpenPrice()+ TAKE *point;
else take_profit=OrderOpenPrice()- TAKE *point;
일반적으로 그룹화하는 것이 좋습니다. 조건은 동일합니다. 그건 그렇고, 당신은 그것들을 구조적으로 다르게 작성했습니다. - 이것은 구조의 손실에 대한 질문입니다. 글의 스타일은 같아야 합니다. 그러면 구조가 보이고 눈이 녹은 후에 발생할 수 있는 오류 자체가 요철처럼 올라옵니다.
if (cmd==OP_BUY){ stop_loss = OrderOpenPrice()- STOP *point;
take_profit = OrderOpenPrice()+ TAKE *point; }
else { stop_loss = OrderOpenPrice()+ STOP *point;
take_profit = OrderOpenPrice()- TAKE *point; }
귀하가 제시한 근본적인 점에서 결과에 영향을 미칠 수 있는 사항은 밝히지 않았습니다. 하지만!... 여기에서 하나의 기능만 제시했습니다(주석 처리된 열거를 제외하고는 상당히 조잡합니다. 이는 질문에 반영됨). 평결을 말하려면 - 함수가 아니라 프로그램 코드가 필요하기 때문입니다. 그 이유가 어디에 있고 무엇에 있는지 알 수 없으며 찾아야 합니다. 이렇게 하려면 테스터에서 프로그램을 실행해야 합니다. 표시된 잼을 직접 확인하십시오. 그런 다음 코드(또는 역순)를 살펴보고 이 이유를 찾으십시오.
일반적인 느낌으로, Oleg, 당신은 상당히 많은 과실이 있다고 말할 수 있습니다 (무관심, 나는 말할 것입니다). 이것은 1. 사용 중인 시스템을 쓰레기로 만들 수 있습니다. 2. 이 쓰레기로 인한 구조 손실 및 잼 식별 및 식별의 어려움. 그러므로 나는 조언할 수 있다. - 가능하면 코드에서 모든 "쓰레기"(추가)를 버리십시오. 오류를 찾는 것이 더 분명할 것입니다. - 이것은 대부분의 사람들이 도움을 요청하는 전형적인 실수입니다. 부주의입니다.
이제 옵티마이저는 결과를 버립니다 ... 분명히 나는 그것들을 어떻게 든 잘못 가져 왔습니다.
아니요, 당신이 틀렸다고 생각합니다. 테스터는 렌더링된 매개변수 때문이 아니라 결과가 중요도 기준을 통과하지 못하기 때문에 제외합니다.
그러나 프로그램 자체에 오류가 있을 수 있다는 사실이 가능합니다. 또한 불안정한 결과로 간접적으로 나타납니다. - 뭔가 잘못됐어. 내 연습에서 나는 그러한 프로그램을 현실로 허용하지 않습니다. 뭔가 잘못되면 상황이 통제되지 않기 때문입니다. 그리고 무엇이든 나올 수 있습니다.
손절매와 이익실현 매개변수는 정의에 따라 최적화가 필요하기 때문에가 아니라 모든 프로그램의 외부 변수에 있습니다. 당신은 그것을 변경할 때마다 코드에 올라가지 않을 것입니다. 따라서 외부 또는 내부 변수는 중요하지 않습니다. - 그건 확실합니다.
왜냐하면 함수 내에서 열거형에서 한 번만 사용합니다. 어떤 이유에서인지 주석 처리되어 코드만 복잡해집니다. - 그래서 질문 - 왜 주문에 의한 검색이 주석 처리 되었습니까?
이것
일반적으로 그룹화하는 것이 좋습니다. 조건은 동일합니다.
글쎄, 나는 당신이 제시 한 근본적인 요점에서 결과에 영향을 줄 수있는 것이 무엇인지 밝히지 않았습니다. 하지만!... 여기에서는 하나의 기능만 제시했습니다(주석 처리된 반복을 제외하고는 상당히 조잡합니다. 이는 질문에 반영됨). 평결을 말하려면 함수가 아니라 프로그램 코드가 필요하기 때문입니다. 그 이유가 어디에 있고 무엇에 있는지 알 수 없으며 찾아야 합니다. 이렇게 하려면 테스터에서 프로그램을 실행해야 합니다. 표시된 잼을 직접 확인하십시오. 그런 다음 코드를 살펴보고(또는 역순으로) 이 이유를 찾으십시오.
일반적인 느낌으로, Oleg, 당신은 상당히 많은 과실이 있다고 말할 수 있습니다 (무관심, 나는 말할 것입니다). 이것은 1. 사용 중인 시스템을 쓰레기로 만들 수 있습니다. 2. 이 쓰레기로 인한 구조 손실 및 잼 식별 및 식별의 어려움. 그러므로 나는 조언할 수 있다. - 가능하면 코드에서 모든 "쓰레기"(추가)를 버리십시오. 오류를 찾는 것이 더 분명할 것입니다. - 이것은 대부분의 사람들이 도움을 요청하는 전형적인 실수입니다. 부주의입니다.
아니요, 당신이 틀렸다고 생각합니다. 테스터는 렌더링된 매개변수 때문이 아니라 결과가 중요도 기준을 통과하지 못하기 때문에 제외합니다.
그러나 프로그램 자체에 오류가 있을 수 있다는 사실이 가능합니다. 또한 불안정한 결과로 간접적으로 나타납니다. - 그래서 뭔가 잘못되었습니다. 내 연습에서 나는 그러한 프로그램을 현실로 허용하지 않습니다. 뭔가 잘못되면 상황이 통제되지 않기 때문입니다. 그리고 무엇이든 나올 수 있습니다.
손절매와 이익실현 매개변수는 정의에 따라 최적화가 필요하기 때문에가 아니라 모든 프로그램의 외부 변수에 있습니다. 당신은 그것을 변경할 때마다 코드에 올라가지 않을 것입니다. 따라서 외부 또는 내부 변수는 중요하지 않습니다. - 그건 확실합니다.
글쎄, 봐
내가 지금 모든 것을 되돌려준다면, 즉. 외부 매개변수 STOP AND TAKE를 제거하고 함수 내에서 대신 숫자를 쓰면 10주 동안 매주 실행한 어드바이저가 명확한 결과를 보여줍니다. 필요한 작업을 정확히 수행합니다. 거래 후 육안으로 확인된 거래.
그리고 수동으로 중지를 변경하고 매개 변수를 사용하면 모든 것이 작동하고 약간 다른 결과가 나타납니다(이는 자연스러운 현상입니다)
이제 왜 이러한 매개변수를 수정자 외부에 배치할 때 옵티마이저가 이를 중요하지 않은 것으로 간주합니까?
체크박스가 없습니다.
아마도 어드바이저 내에서 정규화의 부족이 그러한 효과를 줄 것입니다.
그러나 입력 매개변수 탭이 표시되면 최적화 자체가 발생하지 않습니다.
테스터가 무언가를 하고 있습니다. 아래에서 현재 반복 횟수(7/ 62)를 볼 수 있지만 완료되면 탭 에서 최적화 결과 와 최적화 그래프가 비어 있습니다!
매개변수의 확인 표시는 essno ....
가는길도 모르겠고...
테스터는 테스트 중 스프레드가 알려진 방식으로 변경되지 않기 때문에 변경되지 않은 데이터로 결과의 반복성을 제공하지 않습니다.
의학: https://www.mql5.com/ru/forum/119830
빈 값은 특정 매개변수의 최적화 결과가 수익성이 없음을 나타낼 수 있습니다. 물을 빼다. 시각화를 사용하여 매개변수 중 하나를 실행하면 이 결과가 표시될 수 있습니다.
정규화에 관해서도 그러한 효과가 없을 것이라고 생각합니다. 왜냐하면. 값이 동일하기 때문에 수학 숫자는 정확히 동일하므로 변경 사항이 없습니다.
"어느 방향으로 생각해야 할까"라는 이유로 - 가끔은 생각하지 않고 질문을 제쳐두고 - 아이디어와 생각은 조금 후에 나옵니다. 뇌에 긴장 없이 기동하고, 긴장을 풀고, 생각할 수 있는 기회를 주는 것이 필요합니다.
1. 고문은 수익성이 있습니다.
2. 이미 손으로 확인했습니다. 매개 변수의 전체 범위에서 수익성이 있습니다. 범위를 조금 확장하고 더 작은 단계를 수행하고 싶었습니다.
테스터는 테스트 중 스프레드가 알려진 방식으로 변경되지 않기 때문에 변경되지 않은 데이터로 결과의 반복성을 제공하지 않습니다.
의학: https://www.mql5.com/ru/forum/119830
스프레드가 유동적입니까? 그것은 고칠 수 없습니다.
또 다른 것은 그것이 역사에 굳어 져야한다는 것입니다 ...
일반적으로 결과는 약간 뜨고 트랜잭션 수는 변경되지 않습니다 ... 따라서이 질문은별로 두렵지 않습니다 ...
nifiga의 옵티마이저가 작동하지 않는 또 다른 문제! 짜증난다...
테스터가 로그에 작성하는 내용은 다음과 같습니다.
2013.05.29 12:20:10 최적화 과정에서 8번의 통과가 있었고 8번의 결과가 중요하지 않아 폐기되었습니다.
테스터는 테스트 중 스프레드가 알려진 방식으로 변경되지 않기 때문에 변경되지 않은 데이터로 결과의 반복성을 제공하지 않습니다.
의학: https://www.mql5.com/ru/forum/119830
어쩌면 이것이 가능할 수도 있지만 내 스프레드 크기는 정보로 설정되어 있으며 변경할 때 표시됩니다. 테스터에서 나는 스프레드가 떠 있다는 것을 눈치 채지 못했습니다. 현재 계정의 MarketInfo에서 이러한 표준 매개변수를 가져오고 변경하지 않습니다.
이 약은 스프레드에 따라 다른 최적화 결과를 볼 수 있도록 스프레드 솔루션을 변경합니다. 내가 알기로는 이 프로그램에만 링크가 필요합니다.
2013.05.29 12:20:10 최적화 과정에서 8번의 통과가 있었고 8번의 결과가 중요하지 않아 폐기되었습니다.
글쎄요, 맞습니다 - 이 결과는 중요하지 않은(무의미한) 것으로 표시되었습니다. - 따라서 결과나 그래프에 반영되지 않습니다.
여기에 더 깊은 구멍이 있는 것 같습니다.
어제 내 첫 번째 질문은 사용자 정의 함수 내 에서 매개변수를 최적화하는 방법이었습니다.
그들은 나에게 대답했다 - 그들을 extern double 에 넣어
나는 꺼냈다.
이제 옵티마이저는 결과를 버립니다 ... 분명히 나는 그것들을 어떻게 든 잘못 가져 왔습니다.
여기 코드가 있습니다. 이것은 일반 정차 및 이동 수정자입니다.
STOP과 TAKE 대신 100과 200이라는 숫자가 있었다.
숫자를 STOP 및 TAKE로 바꿨습니다.
코드 시작 부분에 추가
외부 이중 정지 = 100;
외부 이중 테이크 = 200;
어딘가에 오류가 있습니까?
(수정자 자체는 100% 작동합니다)
코드를 보는 동안 몇 가지 주석을 허용하겠습니다.
이 줄은 전혀 의미가 없습니다.
point=MarketInfo( Symbol (),MODE_POINT); /* поскольку это ровным счетом то же самое, что штатный параметр */ Point다중 통화 전략이 있는 경우에만 필요하지만 대신
Symbol ()다른 미리 결정된 값으로 대체해야 하지만 이 일반 기능은 대체할 필요가 없습니다.
또한 이 변수는 중복됩니다.
total= OrdersTotal ();왜냐하면 함수 내에서 열거형에서 한 번만 사용합니다. 어떤 이유에서인지 주석 처리되어 코드만 복잡해집니다. - 그래서 질문 - 왜 주문에 의한 검색이 주석 처리 되었습니까?
이것:
일반적으로 그룹화하는 것이 좋습니다. 조건은 동일합니다. 그건 그렇고, 당신은 그것들을 구조적으로 다르게 작성했습니다. - 이것은 구조의 손실에 대한 질문입니다. 글의 스타일은 같아야 합니다. 그러면 구조가 보이고 눈이 녹은 후에 발생할 수 있는 오류 자체가 요철처럼 올라옵니다.
귀하가 제시한 근본적인 점에서 결과에 영향을 미칠 수 있는 사항은 밝히지 않았습니다. 하지만!... 여기에서 하나의 기능만 제시했습니다(주석 처리된 열거를 제외하고는 상당히 조잡합니다. 이는 질문에 반영됨). 평결을 말하려면 - 함수가 아니라 프로그램 코드가 필요하기 때문입니다. 그 이유가 어디에 있고 무엇에 있는지 알 수 없으며 찾아야 합니다. 이렇게 하려면 테스터에서 프로그램을 실행해야 합니다. 표시된 잼을 직접 확인하십시오. 그런 다음 코드(또는 역순)를 살펴보고 이 이유를 찾으십시오.
일반적인 느낌으로, Oleg, 당신은 상당히 많은 과실이 있다고 말할 수 있습니다 (무관심, 나는 말할 것입니다). 이것은 1. 사용 중인 시스템을 쓰레기로 만들 수 있습니다. 2. 이 쓰레기로 인한 구조 손실 및 잼 식별 및 식별의 어려움. 그러므로 나는 조언할 수 있다. - 가능하면 코드에서 모든 "쓰레기"(추가)를 버리십시오. 오류를 찾는 것이 더 분명할 것입니다. - 이것은 대부분의 사람들이 도움을 요청하는 전형적인 실수입니다. 부주의입니다.
여기에 더 깊은 구멍이 있는 것 같습니다.
어제 내 첫 번째 질문은 사용자 정의 함수 내에서 매개변수를 최적화하는 방법이었습니다.
그들은 나에게 대답했다 - 그들을 extern double 에 넣어
나는 꺼냈다.
이제 옵티마이저는 결과를 버립니다 ... 분명히 나는 그것들을 어떻게 든 잘못 가져 왔습니다.
아니요, 당신이 틀렸다고 생각합니다. 테스터는 렌더링된 매개변수 때문이 아니라 결과가 중요도 기준을 통과하지 못하기 때문에 제외합니다.
그러나 프로그램 자체에 오류가 있을 수 있다는 사실이 가능합니다. 또한 불안정한 결과로 간접적으로 나타납니다. - 뭔가 잘못됐어. 내 연습에서 나는 그러한 프로그램을 현실로 허용하지 않습니다. 뭔가 잘못되면 상황이 통제되지 않기 때문입니다. 그리고 무엇이든 나올 수 있습니다.
손절매와 이익실현 매개변수는 정의에 따라 최적화가 필요하기 때문에가 아니라 모든 프로그램의 외부 변수에 있습니다. 당신은 그것을 변경할 때마다 코드에 올라가지 않을 것입니다. 따라서 외부 또는 내부 변수는 중요하지 않습니다. - 그건 확실합니다.
코드를 보는 동안 몇 가지 주석을 허용하겠습니다.
이 줄은 전혀 의미가 없습니다.
다중 통화 전략이 있는 경우에만 필요하지만 대신
다른 미리 결정된 값으로 대체해야 하지만 이 일반 기능은 대체할 필요가 없습니다.
또한 이 변수는 중복됩니다.
왜냐하면 함수 내에서 열거형에서 한 번만 사용합니다. 어떤 이유에서인지 주석 처리되어 코드만 복잡해집니다. - 그래서 질문 - 왜 주문에 의한 검색이 주석 처리 되었습니까?
이것
일반적으로 그룹화하는 것이 좋습니다. 조건은 동일합니다.
글쎄, 나는 당신이 제시 한 근본적인 요점에서 결과에 영향을 줄 수있는 것이 무엇인지 밝히지 않았습니다. 하지만!... 여기에서는 하나의 기능만 제시했습니다(주석 처리된 반복을 제외하고는 상당히 조잡합니다. 이는 질문에 반영됨). 평결을 말하려면 함수가 아니라 프로그램 코드가 필요하기 때문입니다. 그 이유가 어디에 있고 무엇에 있는지 알 수 없으며 찾아야 합니다. 이렇게 하려면 테스터에서 프로그램을 실행해야 합니다. 표시된 잼을 직접 확인하십시오. 그런 다음 코드를 살펴보고(또는 역순으로) 이 이유를 찾으십시오.
일반적인 느낌으로, Oleg, 당신은 상당히 많은 과실이 있다고 말할 수 있습니다 (무관심, 나는 말할 것입니다). 이것은 1. 사용 중인 시스템을 쓰레기로 만들 수 있습니다. 2. 이 쓰레기로 인한 구조 손실 및 잼 식별 및 식별의 어려움. 그러므로 나는 조언할 수 있다. - 가능하면 코드에서 모든 "쓰레기"(추가)를 버리십시오. 오류를 찾는 것이 더 분명할 것입니다. - 이것은 대부분의 사람들이 도움을 요청하는 전형적인 실수입니다. 부주의입니다.
이 모드를 쓰지 않았습니다.
도서관에서 준비했습니다.
그래서 나는 그것을 청소할 수 없습니다. 가장 중요한 것은 100% 작동한다는 것입니다.
그래서 내부의 매개변수가 최적화되지 않은 것입니다. 이것이 바로 문제입니다.....
근본적인 실수는 없습니다!
나머지 코드는 작동합니다.
알고리즘에 조건을 입력합니다.
- 구입
-수정하다
- 닫다
--------------------------
내 주문 MODIFIER 내에서 매개 변수를 최적화하려고 시도하십시오. 멈추고 가져 가라
아니요, 당신이 틀렸다고 생각합니다. 테스터는 렌더링된 매개변수 때문이 아니라 결과가 중요도 기준을 통과하지 못하기 때문에 제외합니다.
그러나 프로그램 자체에 오류가 있을 수 있다는 사실이 가능합니다. 또한 불안정한 결과로 간접적으로 나타납니다. - 그래서 뭔가 잘못되었습니다. 내 연습에서 나는 그러한 프로그램을 현실로 허용하지 않습니다. 뭔가 잘못되면 상황이 통제되지 않기 때문입니다. 그리고 무엇이든 나올 수 있습니다.
손절매와 이익실현 매개변수는 정의에 따라 최적화가 필요하기 때문에가 아니라 모든 프로그램의 외부 변수에 있습니다. 당신은 그것을 변경할 때마다 코드에 올라가지 않을 것입니다. 따라서 외부 또는 내부 변수는 중요하지 않습니다. - 그건 확실합니다.
글쎄, 봐
내가 지금 모든 것을 되돌려준다면, 즉. 외부 매개변수 STOP AND TAKE를 제거하고 함수 내에서 대신 숫자를 쓰면 10주 동안 매주 실행한 어드바이저가 명확한 결과를 보여줍니다. 필요한 작업을 정확히 수행합니다. 거래 후 육안으로 확인된 거래.
그리고 수동으로 중지를 변경하고 매개 변수를 사용하면 모든 것이 작동하고 약간 다른 결과가 나타납니다(이는 자연스러운 현상입니다)
이제 왜 이러한 매개변수를 수정자 외부에 배치할 때 옵티마이저가 이를 중요하지 않은 것으로 간주합니까?