기고글 토론 "유전 알고리즘-쉬워요" - 페이지 19

 
Andrey Dik:
무언가를 최적화할 계획이시죠? 따라서 이 "무언가"를 FF의 형태로 제시해야 하며, 예를 들어 인디케이터 신호의 수익 포인트 수가 될 수 있습니다. 이것이 바로 FF입니다.
FF에 대해 물어볼 것이 있는데, 예를 들어 주어진 조언과 같다면 최적화는 어디에서 중요한지,이 UGA가 말한 이익의 가능성을 저장할 수 있는지 아니면 다른 것인지, 최적의 지표 매개 변수를 설정할 때 내가 보는 EA 예제처럼 가상 테스트를해야하는지 여부, 그리고 이것이 불쾌하다면 미안하지만 유전 알고리즘은 무작위인데 어떻게 최적이라고 확신 할 수 있으며 가능하면 유전 알고리즘이 매개 변수 지표를 최적화 할 수있는 좋은 조건을 입력하는 것이 좋습니다, 예를 들어 과거 매수, 수익 조건에서 앞으로 몇 포인트와 유전 알고리즘이 비슷한 데이터를 사용해서 최적화를 실행할 수 있는지, 그게 좋은 사용 방법인지, 다른 생각이 안나는데, 만약 틀렸다면 좋은 사용 예를 알려주세요, 만약 없으면 난수를 입력해서 실행하면 최적의 결과가 나오는지, 유 다행히 지금은 난수를 다시 입력해서 지고, 등등, 추측에 가깝지 않나요.
 
SALEH:
질문이 있습니다, 예를 들어 FF에 대해, 주어진 조언과 같은 경우 최적화는 어디에서 중요한지,이 UGA가 말한 수익 가능성을 저장할 수 있는지 또는 다른 것인지, 최적의 지표 매개 변수를 설정할 때 내가 보는 EA 예제처럼 가상 테스트를해야하는지 여부, 그리고 이것이 불쾌하다면 죄송합니다, 유전자 알고리즘은 무작위인데 어떻게 최적이라고 확신 할 수 있는지, 가능하다면 유전자 알고리즘이 매개 변수 지표를 최적화하도록 좋은 조건을 입력하는 것이 좋을지 궁금합니다, 예를 들어 과거 매수, 수익 조건에서 앞으로 몇 포인트와 유전 알고리즘이 비슷한 데이터를 사용해서 최적화를 실행할 수 있는지, 그게 좋은 사용 방법인지, 다른 생각이 안나는데, 만약 틀렸다면 좋은 사용 예를 알려주세요, 만약 없으면 난수를 입력해서 실행하면 최적의 결과가 나오는지, 유 다행히 지금은 난수를 다시 입력해서 지고, 등등, 추측에 가깝지 않나요.

유전 알고리즘은 난수를 그 자체로 사용하는 것이 아니라 확률 분포를 사용합니다. 아무도 미래를 알 수 없기 때문에 사람들은 항상 확률 분포를 사용하여 모든 결정을 내립니다.매개 변수의 전체 반복을 사용할 수 있지만 모든 매개 변수를 사용하지는 않습니다. 어떤 옵션을 사용할지 결정해야 하지 않겠습니까? - 이러한 수동 선택의 결과는 사전에 불확실하며, 즉 결정론적이지 않습니다.

 
Andrey Dik:

유전 알고리즘은 난수를 그 자체로 사용하는 것이 아니라 확률 분포를 사용하여 사용합니다. 아무도 미래를 알 수 없기 때문에 사람들은 항상 확률 분포를 사용하여 모든 결정을 내립니다.매개 변수의 전체 반복을 사용할 수 있지만 모든 매개 변수를 사용하지는 않습니다. 어떤 옵션을 사용할지 결정해야 하지 않겠습니까? - 이러한 수동 선택의 결과는 사전에 불확실하며, 즉 결정론적이지 않습니다.

그렇다면 어떤 것을 최적화하는 것이 좋은지, 매개 변수 지표의 문제라면 매개 변수가 자주 변경되어 약간 동의하지 않습니다. 테이크프로핏과 스톱로스에 적용하는 것이 더 나은지 아니면 다른 더 나은 방법이 있는지 조언을 부탁드립니다. 답변 주셔서 감사드리며, 다른 제안이 있으시면 말씀해 주세요. 실험 결과를 공유하고 이 UGA를 더 시도하는 데 조금이라도 도움이 되었으면 합니다.
 
SALEH:
그렇다면 어떤 것이 최적화하는 것이 좋은지 조언을 부탁드립니다. 매개 변수 지표의 문제라면 매개 변수가 자주 변경되기 때문에 약간 동의하지 않습니다. 테이크 프로핏과 스톱 로스에서 적용하는 것이 더 나은지 아니면 더 나은 방법이 있습니까? 답변 주셔서 감사드리며, 다른 제안이 있으시면 말씀해 주세요. 실험 결과를 공유하고 이 UGA를 더 시도하는 데 조금이라도 도움이 되었으면 합니다.

트레이딩 시스템에 대해 전혀 모르는 상태에서 조언을 드리기는 어렵습니다.

 
콘텐츠 제작을 축하드립니다! 그러나 언급된 코드나 예제를 컴파일할 수 없습니다. 오류는 "ServiceFunction ();" 줄에 있는 것 같습니다.
 
Rafael Ladeia:
콘텐츠 제작을 축하드립니다! 그러나 언급된 코드나 예제를 컴파일할 수 없습니다. 오류는 "ServiceFunction ();" 줄에 있는 것 같습니다.

11년 만에 피드백을 주셔서 감사합니다!))) 안타깝게도 오류가 발생할 수 있습니다. 시간이 있을 때 코드를 업데이트해야 할 때인 것 같네요...

 

현재 최적화 문제가 있는데 이 라이브러리가 도움이 될 수 있는지 알아보기 위해 실험하고 있습니다. 안타깝게도 라이브러리를 올바르게 설정하는 방법을 잘 모르겠습니다.

제 예에서는 위험을 최소화하기 위해 로트 크기의 최적(최대) 구성을 계산하고 싶습니다.

이를 위해 테스트를 위해 6개의 문자를 가져와서 이 문자들에 대해 최적의 로트 크기를 찾아야 합니다. 그런 다음 적합성 함수에서 해당 자산에 대한 예상 ROI와 UGA의 제안된 로트 크기에서 예상되는 위험을 계산합니다.

위험이 내 임계값보다 작으면 최대화할 것으로 예상되는 ROI를 Colony[0][chromos]..... 에 저장합니다.

다음은 제 코드입니다:

void CPortfolioRiskMan::GetOptimalWeights()
  {

   double ReplicationPortion_P  = 100.0;
   double NMutationPortion_P    = 10.0;
   double ArtificialMutation_P  = 10.0;
   double GenoMergingPortion_P  = 20.0;
   double CrossingOverPortion_P = 20.0;
   double ReplicationOffset_P   = 0.5;
   double NMutationProbability_P= 5.0;
//-----------------------Variables-------------------------------------
//UGA용 글로벌 변수 준비
   ChromosomeCount=6; //콜로니의 염색체 수
   GeneCount      =6;       //유전자 수
   RangeMinimum   =0.01;    //검색 범위의 최소값
   RangeMaximum   =1;    //검색 범위의 최대값
   Precision      =0.01;       //검색 단계
   OptimizeMethod =2;  //1-최소값, 기타-최대값

   ArrayResize(Chromosome,GeneCount+1);
   ArrayInitialize(Chromosome,0);
   Epoch=50;                     //개선되지 않은 에포크 수




//UGA의 주요 기능 시작
   UGA
   (
      ReplicationPortion_P, //복제 비율.
      NMutationPortion_P,   //자연 돌연변이 비율.
      ArtificialMutation_P, //인공 돌연변이 비율.
      GenoMergingPortion_P, //유전자 채택 비율.
      CrossingOverPortion_P,//크로스오버 비율.
      ReplicationOffset_P,  //구간 경계 이동 속도
      NMutationProbability_P//각 유전자의 돌연변이 확률(%)
   );



  }



void FitnessFunction(int chromos)
  {
//-----------------------Variables-------------------------------------

   double weight=0.0;
   double ClosePrices[]= {1.21,0.98,1.31,1.22,0.99,0.86};
   string symbols[]= {"EURUSD","GBPUSD","AUDNZD","EURAUD","NZDJPY","GBPJPY"};
   double tickvalues[]= {0.94,0.78,0.56,0.76,0.45,0.94};
   double tickstep=0.00001;
   double Lotsizes[6];
   double av_return=0;

//----------------------------------------------------------------------


   for(int u=1; u<=GeneCount; u++)
     {
      Lotsizes[u-1]=Colony[u][chromos];
      av_return+=Lotsizes[u-1]*tickvalues[u-1]*tickstep*ClosePrices[u-1];
     }

   double risk=CalculateVaR(symbols, Lotsizes);

   if(risk>50)
      Colony[0][chromos]=-10000000.0;
   else
      Colony[0][chromos]=NormalizeDouble(av_return,2);


   AmountStartsFF++;
  }
 
Filip #:

현재 최적화 문제가 있는데 이 라이브러리가 도움이 될 수 있는지 알아보기 위해 실험하고 있습니다. 안타깝게도 라이브러리를 올바르게 구성하는 방법을 잘 모르겠습니다.

제 예에서는 위험을 최소화하기 위해 로트 크기의 최적(최대) 구성을 계산하고 싶습니다.

이를 위해 테스트를 위해 6개의 문자를 가져와서 이 문자들에 대해 최적의 로트 크기를 찾아야 합니다. 그런 다음 적합성 함수에서 해당 자산에 대한 예상 ROI와 UGA의 제안된 로트 크기에서 예상되는 위험을 계산합니다...

리스크가 내 임계값보다 작으면 예상 ROI를 최대로 유지하여 Colony[0][chromos].....

다음은 제 코드입니다:

질문의 요점을 이해하지 못했는데 더 설명해 주세요.

일반적으로 이것은 매우 오래된 버전의 알고리즘이며, 현재 "인구 최적화 알고리즘"문서에서보다 애플리케이션 친화적 인 알고리즘 체계를 준수하지 않습니다 (버전).

SDS 알고리즘이나 표의 다른 알고리즘을 사용하거나 UGA의 업데이트 버전을 기다리는 것이 좋습니다(이 오래되었지만 매우 강력한 알고리즘에 대한 기사에서 새로운 모습을 게시하는 것이 적절한지 모르겠습니다).

나는 일반적으로이 기사를 새로운 방식으로 다시 작성하고 순위 표에 UGA를 포함시킬 것이지만, 그것이 가능하고 필요한지 여부는 모르겠습니다.

ZY. 기존 기사를 다시 작성하는 것은 불가능하다고 생각하며 이미 많은 언어로 번역되었습니다.

 
컴파일되지 않습니다. 많은 오류가 발생합니다.
 
gardee005 #:
컴파일되지 않습니다. 많은 오류가 있습니다.
제발 오류목록을 보여주세요 .코드는매우 오래되었지만 그러나 14 후에도 심지어 깨뜨릴 것이 없습니다.