최적화 알고리즘 챔피언십. - 페이지 4

 
Dmitry Fedoseev :
봐, 나는 위에서 보편적인 방법을 제시했다. 그리고 중개자를 통한 일회성 호출의 경우 검색 기능을 매우 진지하게 수정해야 합니다. 아무도 그렇게 하지 않을 것입니다.
과장하지 마십시오. 해결책이 있습니다. 알고리즘 라이브러리에서 내부 FF 호출을 제거하는 방법에 대해 생각해 보십시오.
 
Andrey Dik :
과장하지 마십시오. 해결책이 있습니다. 알고리즘 라이브러리에서 내부 FF 호출을 제거하는 방법에 대해 생각해 보십시오.
그것에 대해 생각조차해서는 안됩니다. 노력을 기울일 필요가 없습니다.
 
Dmitry Fedoseev :

...

다른 옵션은 없습니다. 가능한 경우 함수에 대한 포인터를 전달하지 않는 한(하지만 지금까지 아무도 도움말을 볼 수 있는 위치를 제안하지 않았습니다). 참가자는 ff 함수를 호출할 수 있는 충분한 기회가 있어야 합니다.

여기에 예와 함께 언급되었습니다 . MetaTrader 5 플랫폼 빌드 1325의 새 버전: 실제 틱에 대한 헤징 및 테스트를 통한 거래 >>>

예시:

MQL5: 이벤트 모델의 구성을 용이하게 하기 위해 기능에 대한 포인터 지원이 추가되었습니다.

함수 포인터를 선언하려면 "함수에 대한 포인터" 유형을 정의합니다. 예를 들면 다음과 같습니다.

 typedef int (*TFunc)( int , int );

이제 TFunc는 유형이며 함수 포인터 변수를 선언할 수 있습니다.

TFunc func_ptr;

나중에 호출하기 위해 func_ptr 변수에 함수의 주소를 저장할 수 있습니다.

 int sub( int x, int y) { return (x-y); }
int add( int x, int y) { return (x+y); }
int neg( int x)       { return (~x);  }

func_ptr=sub;
Print (func_ptr( 10 , 5 ));

func_ptr=add;
Print (func_ptr( 10 , 5 ));

func_ptr=neg;           // ошибка: neg не имеет тип  int (int,int)
Print (func_ptr( 10 ));     // ошибка: должно быть два параметра

함수 포인터는 저장하고 매개변수로 전달할 수 있습니다. 비정적 클래스 메서드에 대한 포인터를 가져올 수 없습니다.

 

다음은 내 클래스 메서드의 예입니다.

       void Evolution(){ 
         

         for ( int c= 0 ;c<GenerationsCount;c++){
         
            f0(); // расчет значений фф для каждого индивида
            f1();         
            f2();
            f3();
            f4();
            
         }
         
         f5();
         f6();

      }

글쎄, 여기 어떻게? 그리고 가장 중요한 것은 실제로 그것이 결코 불필요한 것이 아니라면 왜 그것에 대해 생각하는지입니다. 최적화 알고리즘의 우승은 조를 통해 작동하는 기능 적응의 우승으로 바뀝니다.

함수는 호출된 횟수를 계산할 수 있습니다. 참가자가 가져오기 를 하면 파일에 금액을 기록하고 시작하기 전에 재설정할 수 있습니다.

클래스를 사용하는 것이 가장 좋습니다. 그러면 수량을 간단히 사용할 수 있습니다. 여기에서 사기는 의심의 여지가 없습니다.

 
Dmitry Fedoseev :
그것에 대해 생각조차해서는 안됩니다. 노력을 기울일 필요가 없습니다.

확인. 괜찮아요. 그런 다음 챔피언십에 알고리즘 작동을 위한 두 가지 옵션을 제공해야 합니다.

1. 알고리즘 내부에서 FF 호출로 (결국 알고리즘은 FF가 있는 닫힌 성경 안에 어떤 종류의 FF가 있는지 알지 못합니다)

2. 알고리즘에서 FF를 호출하지 않고 결과를 알고리즘으로 간단히 전송합니다.

나는 이 두 가지 옵션이 최적화 알고리즘 사용에서 가능한 모든 변형을 다룰 수 있다고 믿습니다. 모든 사람이 높은 수준의 프로그래밍 지식을 가지고 있는 것은 아닙니다. (예를 들어, 저는 전문가가 아닙니다. 보편성을 위해 알고리즘을 여러 부분으로 나누는 데 몇 달이 걸렸습니다.)))

 

고맙습니다.

수업보다 쉽지 않습니다. 나는 심지어 수업이 더 쉽다고 말하고 싶다.

 
Andrey Dik :

확인. 괜찮아요. 그런 다음 챔피언십에 알고리즘 작동을 위한 두 가지 옵션을 제공해야 합니다.

1. 알고리즘 내부에서 FF 호출로 (결국 알고리즘은 FF가 있는 닫힌 성경 안에 어떤 종류의 FF가 있는지 알지 못합니다)

2. 알고리즘에서 FF를 호출하지 않고 결과를 알고리즘으로 간단히 전송합니다.

나는 이 두 가지 옵션이 최적화 알고리즘 사용에서 가능한 모든 변형을 다룰 수 있다고 믿습니다. 모든 사람이 높은 수준의 프로그래밍 지식을 가지고 있는 것은 아닙니다. (예를 들어, 저는 전문가가 아닙니다. 보편성을 위해 알고리즘을 여러 부분으로 나누는 데 몇 달이 걸렸습니다.)))

시간이 너무 많으면 부탁드립니다. 에서만. 2는 필요하지 않습니다.
 
Dmitry Fedoseev :
시간이 너무 많으면 부탁드립니다. 에서만. 2는 필요하지 않습니다.
글쎄, 우리는 그것을 판단할 수 없습니다. 당신에게는 1번 옵션이 있고 저는 2번 옵션이 있습니다. 그리고 다른 참가자들이 어떻게 될지 누가 압니까? 그리고 몇시입니까? - 위 스크립트의 예를 5분 만에 작성했습니다. 결국 2차 옵션이 확정될 것입니다.
 
Andrey Dik :
글쎄, 우리는 그것을 판단할 수 없습니다. 당신에게는 1번 옵션이 있고 저는 2번 옵션이 있습니다. 그리고 다른 참가자들이 어떻게 될지 누가 압니까? 그리고 몇시입니까? - 위 스크립트의 예를 5분 만에 작성했습니다. 결국 2차 옵션이 확정될 것입니다.
옵션 2가 어떻게 일어났는지 추측할 수 있는 것은 아무것도 생각나지 않습니다. 당연하지.
 
Dmitry Fedoseev :
옵션 2가 어떻게 일어났는지 추측할 수 있는 것은 아무것도 생각나지 않습니다. 당연하지.

간단한 예입니다. 최적화 알고리즘은 차트 어딘가에 있습니다. 그리고 표준 테스터에서 Expert Advisor의 최적화는 철저한 검색을 통해 시작되었습니다. 따라서 일반 알고리즘 대신 최적화 알고리즘을 사용할 수 있습니다.

다른 예시. EA는 차트 및 거래에서 작동합니다. 일정 시간 후 거래 결과를 해당 매개변수와 함께 알고리즘(어드바이저 내부 또는 외부에 있을 수 있음)에 던지고 새 매개변수를 다시 가져온 다음 거래를 계속합니다(귀하의 경우 다음을 실행해야 합니다. 하지만 제 경우에는 "라이브"를 선택할 수 있습니다.)

등. 즉, 이 예에서 알고리즘은 작업에서 완전히 분리됩니다.

예는 거래와 관련하여 의도적으로 제공되었습니다. 마우스 상인.