여러분 안녕하세요!
기사가 재미있으셨기를 바랍니다.
UGA를 OOP로 변환하는 방법에 대한 팁을 듣고 기쁩니다.
이것이 최적화되었을 때
MathSrand((int)TimeLocal());
가 최적화되었을 때 작동하는지 확인하고 싶어요.
테스터에서 라이브러리를 실행해 보셨나요?
1) 이것이 다음과 같은지 확인하고 싶습니다.
MathSrand((int)TimeLocal());
최적화했을 때 작동하는지 알고 싶습니다.
2) 테스터에서 라이브러리를 실행해 보셨나요?
1) 작동하지 않을 이유를 모르겠습니다.
2) 이 간단한 질문에 대해 두 단어로 완전한 답을 줄 수는 없습니다.
트레이더의 최적화 문제는 조건부로 두 가지 유형으로 나눌 수 있습니다: a) "로컬 문제"와 b) "글로벌 문제".
a) 로컬 - 각 틱에서 수행되는 트레이더/TS의 모든 작업(로컬 작업으로 나눌 수도 있음)의 집합입니다. 이 유형의 예는 기사의 첫 번째 작업(방정식 풀기, 최적 옵션 가격 선택 및 기타 유사한 작업)입니다. "미래" 가격 이력은 필요하지 않습니다.
b) 글로벌 작업 - 모든 로컬 작업의 일부 기능 최적화(보고 기간의 총 수익, 드로다운, MO 등일 수 있음). 최적화 대상 기간의 전체 가격 이력이 필요합니다. 사내 테스터는 정확히 이러한 유형의 작업을 수행합니다.
UGA는 표준 테스터에 의존하지 않도록 설계되었으며 "수제" 테스터를 포함하여 알고리즘 코드를 변경하지 않고도 글로벌 및 로컬 작업 모두에 사용할 수 있습니다. 표준 테스터의 프레임워크 내에서 UGA는 로컬 작업에서만 변경 없이 사용할 수 있습니다. 글로벌 작업의 경우 테스터에서 수정해야 합니다.
자체 최적화 알고리즘이 있는 테스터에서 최적화 알고리즘을 사용할 필요는 아직 없었습니다.
일반적인 용어로 작업을 설명해 주시면 여기서 해결 방법을 고려해 보겠습니다.
고마워요, 주- 흥미로운 작업이었어요!
유전 알고리즘의 실제 적용에 대한 질문이 제기되었습니다.
이 논문은 다음과 같이 설명합니다:
- 주어진 간격에서 두 변수의 함수의 최대값/최소값 구하기
- 수익 함수의 최대값 찾기(지그재그 예시).
이 알고리즘이 유용할 수 있다고 생각되는 실제 트레이딩 작업의 예를 들어주세요.

- 2010.05.25
- Andrey Dik
- www.mql5.com
일반적인 용어로 문제를 설명해 주시면 여기에서 해결 방법을 살펴볼 것입니다.
문제는 간단합니다. srand() 함수가 테스터를 실행할 때마다 제너레이터를 임의의 시작점으로 설정하기를 원합니다.
MathSrand((int)TimeLocal())는 테스터를 여러 번 실행할 때마다 제너레이터를 이전(동일한) 초기 상태로 설정한다는 것이 밝혀졌습니다.
테스터를 실행할 때마다 생성기를 임의의 시작점으로 설정하는 srand() 함수를 사용하고 싶습니다.
MathSrand((int)TimeLocal())는 테스터를 여러 번 실행할 때마다 제너레이터를 이전(동일한) 초기 상태로 설정하는 것으로 밝혀졌습니다.
TimeLocal은 시간을 초 단위로 제공합니다. 테스트할 때 생성된 테스트 시간은 동일합니다.
GetTickCount를 사용해 보세요. 정직하게 밀리초를 제공하며 아무것도 에뮬레이션하지 않습니다.
테스트할 때 생성된 테스트 시간은 동일합니다.
О! 감사합니다.
고마워요, 주- 흥미로운 작업이었어요!
유전 알고리즘의 실제 적용에 대한 질문이 제기되었습니다.
이 논문은 다음과 같이 설명합니다:
- 주어진 간격에서 두 변수의 함수의 최대값/최소값 구하기
- 수익 함수의 최대값 찾기(지그재그 예시).
이 알고리즘이 유용할 수 있다고 생각되는 실제 트레이딩 작업의 예를 들어주세요.
일반적으로 경제 업무와 특히 트레이더의 업무는 대부분 최적화 성격이 강합니다.
트레이더는 TS의 최적 파라미터를 끊임없이 찾고 있습니다. 다음은 UGA가 해결에 도움을 줄 수 있는 작업 유형에 대한 불완전한 목록입니다:
-지표의 최적 매개변수 찾기
-MM의 최적 매개 변수 찾기
-지표에서 필터의 최적 설정 (디지털 필터의 계수 검색 포함) 검색
-모든 토폴로지 및 임의 크기의 신경망 훈련
-모든 토폴로지 및 임의 크기의 네트워크 위원회 교육. (위원회는 서로 독립적인 네트워크 그룹입니다).
UGA는 위에서 언급 한 개별 작업을 해결하는 데 모두 사용할 수 있으며 한 번에 모두 함께 사용할 수 있습니다. 따라서 UGA의 힘을 이해하는 데 도움이되도록 목록의 마지막 유형의 작업을 해결할 수있는 가능성을 통해 뇌 모델을 만들 수 있다고 말할 것입니다 (아시다시피 뇌는 부서로 구성됨).
작업 목록은 오랫동안 계속 될 수 있으며 포럼 스레드를 살펴보십시오.
멋진 내용이고 잘 작성되었습니다. 저도 유전적 최적화를 사용해 보았지만 안타깝게도 별다른 이점을 찾지 못했습니다. GA는 일반적으로 글로벌 최적화의 방법으로 간주됩니다. 매우 큰 식민지를 처리 할 시간이 충분하다면 그렇지만 시간 (식민지 크기)이 제한되어 있으면 경사 하강 방법과 마찬가지로 GA는 국소 최소값으로 수렴하고 매우 느리게 수렴합니다. 물론 입력 파라미터의 가능한 모든 조합을 무작위로 검색하는 방법과 비교하면 GA는 속도 면에서 부인할 수 없는 이점을 제공합니다. GA의 광범위한 응용 분야 중 하나는 많은 수의 계수를 가진 다층 신경망의 훈련입니다. 이러한 네트워크에는 엄청난 수의 로컬 최소값이 있습니다. 어떤 이유에서인지 GA는 이 악의 치료제로 간주됩니다. 그러나 실제로 치료법은 적용된 도구, 즉 이 경우 다층 네트워크입니다. 높은 분류 정확도(예: 매수/매도/보류) 또는 간단하고 명확한 최적화를 통한 회귀 외삽이 가능한 다른 도구를 선택하는 것이 훨씬 쉽습니다 ;-).
1) 멋진 내용이고 잘 작성되었습니다.
2) 저도 유전적 최적화를 사용해 보았지만 안타깝게도 별다른 이점을 찾지 못했습니다. GA는 일반적으로 전역 최적화의 방법으로 간주됩니다. 매우 큰 콜로니를 처리할 시간이 충분하다면 그럴 수 있지만, 시간(콜로니 크기)이 제한되어 있는 경우 GA는 경사 하강 방법과 마찬가지로 국소 최소값으로 수렴하며 매우 느리게 수렴합니다. 물론 입력 파라미터의 가능한 모든 조합을 무작위로 검색하는 방법과 비교하면 GA는 속도 면에서 부인할 수 없는 이점을 제공합니다. GA의 광범위한 응용 분야 중 하나는 많은 수의 계수를 가진 다층 신경망의 훈련입니다. 이러한 네트워크에는 엄청난 수의 로컬 최소값이 있습니다. 어떤 이유에서인지 GA는 이 악의 치료제로 간주됩니다. 그러나 실제로 치료법은 적용된 도구, 즉 이 경우 다층 네트워크입니다. 간단하고 명확한 최적화를 통해 높은 정확도의 분류 (예 : 매수 / 매도 / 보유) 또는 회귀 추정이 가능한 다른 도구를 선택하는 것이 훨씬 쉽습니다 ;-).
1) 친절한 말씀 감사합니다.
2) 주제에 대한 귀하의 지식을 의심하지 않지만 여전히 유전 알고리즘 작업에 약간의 기술이 필요합니다 ( "UGA 작업을위한 권장 사항"섹션의 네 번째 팁 ).
UGA는 알고리즘을 수정하지 않고도 모든 최적화 문제("약간의 역사"기사 섹션)에 사용할 수 있는 범용 도구로 개발되었습니다. 추가 수정 및 특정 연산자 추가에 최대한 활용할 수 있습니다. 이러한 속성을 가진 최적화 알고리즘을 많이 알고 있나요?
왜 GA가 다양한 최적화 문제의 만병통치약으로 간주되는지 모르겠습니다. 개인적으로 그렇게 생각하지 않으며 어디에서도 언급 한 적이 없습니다. 물론 각 특정 작업에 대해 실행 속도와 최종 결과 측면에서 최상의 최적화 도구를 선택할 수 있습니다. UGA는 보편성이라는 다른 목표를 가지고 있습니다.
MQL4 포럼 스레드 "다변수 다중 익스트림 함수 테스트" 에 몇 가지 흥미로운 테스트 함수를 게시했으며, 그 중 하나가 이 문서에 나와 있습니다.
원하신다면 GA가 아닌 다른 최적화 알고리즘을 사용하여 제안된 함수의 극한을 찾아보고 그 결과를 여기에 게시할 수 있습니다. 그렇게 하셔도 좋습니다. 처음에는 모든 사람과 저에게 흥미로울 것입니다.
추신 나는 누군가를 설득하려는 목표는 없지만 기사에서 제안한 알고리즘에 익숙해지기 위해 그 반대 (굵은 글씨로)를 확신하는 것이 좋습니다.
연구에 행운을 빕니다!
- www.mql5.com
새로운 기고글 유전 알고리즘-쉬워요 가 게재되었습니다:
이 글에서는 저자가 직접 개발한 유전 알고리즘을 이용한 진화 연산에 대해 이야기합니다. 예제를 이용해 알고리즘의 기능을 설명하고, 실제 적용 가능한 경우를 설명합니다.
GA는 자연 자체에서 빌린 원칙을 포함합니다. 유전과 가변성의 원리이죠. 유전은 유기체가 자신의 특성과 진화적 특성을 자손에게 전이하는 능력입니다. 이 능력 덕분에 모든 생물은 자손에게 종의 특성을 남깁니다.
살아있는 유기체에서 유전자의 다양성은 개체군의 유전적 다양성을 보장하며 무작위로 나타납니다. 자연은 미래를 예측하지 못하기 때문입니다(기후 변화, 식량 감소/증가, 경쟁 종의 출현 등). 이 가변성은 새로운 특성을 가진 생물의 출현을 가능하게 하여 새롭고 변경된 서식지 조건에서 생존하고 자손을 남기게 도와줍니다.
생물학에서는 돌연변이의 출현으로 인해 발생하는 가변성을 돌연변이라고 하고 교배에 의한 추가 유전자 교차 조합으로 인한 가변성을 조합이라고 합니다. 이러한 변형은 모두 GA에서 구현됩니다. 또한 자연적(자발적) 및 인공적(유도적) 돌연변이(DNA의 뉴클레오타이드 서열 변화)의 자연적 메커니즘을 모방하는 돌연변이 유발에 대한 구현도 이루어집니다.
알고리즘의 기준에서 가장 간단한 정보 전달 단위는 유전자</ b0>입니다. 유전의 구조적 및 기능적 단위로, 특정 특성 또는 속성의 개발을 제어하죠. 우리는 함수의 각 변수를 유전자라고 부를 것입니다. 유전자는 숫자로 나타나죠. 함수의 유전자 변수 세트는 염색체</ b1>의 특징입니다.
열의 형태로 염색체를 표현하기로 합시다. 그러면 함수 f(x)=x^2의 염색체는 다음과 같습니다.
그림 1. 함수 f(x)=x^2의 염색체
f(x) 함수의 0번째 인덱스 값이 개인의 적응으로 불리는(해당 함수를 적합성 함수 'FF</ b0>'라고 부르고 함수 값은 'VFF</ b1>'로 표시). 염색체는 1차원 배열에 저장하는 것이 편합니다. 이건 double Chromosome [] 배열이죠.
작성자: Andrey Dik