통화 쌍의 거래 포트폴리오 - 페이지 9

 
MetaDriver :

그들은 역사에 있습니다. (사실 모두 흰색이라 광고와 완전히 일치함을 확인합니다.)

그들은 하얗고 푹신해야합니다. 왜냐하면. von Neumann-Morgenstern 정리에 따르면 MiniMax 값은 게임의 가격입니다. 최소한의 기대. 최적으로 분산된 포트폴리오는 선택한 상품의 가격이 움직이는 방향에 관계없이 이익을 제공해야 합니다. 따라서 포트폴리오가 적어도 하나의 역사적 기간에 손실을 허용한다면 위의 정리에 따른 기대치는 음수이며 최적으로 분산되지 않습니다.
 
C-4 :

그리고 어떤 것을 사용하기 위해, 그것이 어떻게 작동하는지 이해하지 못하는 동안, 그것이 열려 있다는 이유만으로 올바른 마음을 가진 사람은 아무도 없을 것입니다.

아무도 당신에게 그것을 사용하도록 강요하지 않습니다. 소스는 공개되어 있으며 기본 수학 이론과 알고리즘은 비밀이 아닙니다. 건전한 정신과 확고한 기억력을 가진 사람은 누구나 그것이 어떻게 작동하는지 독립적으로 알아낼 수 있습니다. 나머지는 쉬세요.
 
kharko :

구현을 위해서는 모든 옵션을 열거해야 합니다. 총 옵션 수는 2의 N승이며, 여기서 N은 포트폴리오의 상품 수입니다. 누군가 도울 수 있습니다 - 기성품 코드. 나는 매우 감사하게 될 것입니다.

드로다운에 최적화되었습니다. 선이 더 똑바릅니다. 그런데 곰곰이 생각하던 중에 갑자기 의문이 생겼습니다. 스프레드를 어떻게 계산합니까? 결국, 이를 위해서는 얼마나 많은 거래가 이루어지고 어떤 양으로 이루어질지 알아야 합니다! 내 지표에서 나는 스프레드를 고려하지 않지만 스왑에서 얼마나 많은 포인트를 잃거나 얻을 것인지 계산하려고했습니다. 최적화할 때 스왑은 고려되지 않습니다.

주목! 많은 수의 통화 쌍과 분석된 막대를 사용하지 않는 것이 좋습니다.

10개 통화쌍의 드로우다운 및 매개변수 Lengh = 100에 대해 최적화하면 표시기가 약 5초 만에 초기화됩니다!!! 힘내세요 :)

 

파일 폴더에 있어야 하는 ET_para.csv 파일을 채우는 예:

상징 유형
EURUSD 하나
EURGBP 0
EURCHF 하나
EURJPY 하나
GBPUSD 하나
USDCHF 0
USD/JPY 하나
호주 달러 하나
USDCAD 하나
NZDUSD 0

첫 번째 줄은 헤더에 사용되며 계산에 포함되지 않습니다!

파일:
et_para.zip  1 kb
 
EvgeTrofi :

드로다운에 최적화되었습니다. 선이 더 똑바릅니다. 그런데 곰곰이 생각하던 중에 갑자기 의문이 생겼습니다. 스프레드를 어떻게 계산합니까? 결국, 이를 위해서는 얼마나 많은 거래가 이루어지고 어떤 양으로 이루어질지 알아야 합니다! 내 지표에서 나는 스프레드를 고려하지 않지만 스왑에서 얼마나 많은 포인트를 잃거나 얻을 것인지 계산하려고했습니다. 최적화할 때 스왑은 고려되지 않습니다.

주목! 많은 수의 통화 쌍과 분석된 막대를 사용하지 않는 것이 좋습니다.

10개 통화쌍의 드로우다운 및 매개변수 Lengh = 100에 대해 최적화하면 표시기가 약 5초 만에 초기화됩니다!!! 힘내세요 :)

잘했어요...

스프레드와 스왑은 고려되지 않습니다. 표시기는 포인트에서만 작동합니다.

거래량, 스프레드 및 포인트 값을 고려하면 이러한 매개변수의 올바른 값에 직접적으로 의존하는 가상 자산 곡선을 얻게 됩니다. 포트폴리오의 모든 상품에 대해 각 막대의 포인트 가치를 예금 통화 로 계산해야 합니다. 많은 DC에서 스프레드 값이 변경되어 곡선이 크게 왜곡됩니다.

모든 옵션을 반복하는 알고리즘에 관심이 있습니다. 도움을 주시면 대단히 감사하겠습니다.

 

옵션 매트릭스는 다음과 같이 구성됩니다.

 void Sbor( int & Ar[][]){
   //Создание массива вариантов сочитаний действий над валютными парами
   int Begin = 0 ;
   int Size = MathPow (V, CountSy);
   int min = 0 ;
   int max = 1 ;
   if (V== 3 ) min = - 1 ;
   ArrayResize (Ar, Size);
   for ( int i = 0 ; i < Size; i++){ // Варианты (строки)
       for ( int j = 0 ; j < CountSy; j++){ // Инструменты (столбцы)
         if (i== 0 ){
            Ar[i][j]= 0 ;
         } else {
             if (j== 0 ){
               if (Ar[i- 1 ][j]<max){
                  Ar[i][j]++;
               } else {
                  Ar[i][j]=min;
               }
            } else {
               if (Ar[i][j- 1 ]<Ar[i- 1 ][j- 1 ]){
                   if (Ar[i- 1 ][j]<max){
                     Ar[i][j]++;
                  } else {
                     Ar[i][j]=min;
                  }
               } else {
                  Ar[i][j]=Ar[i- 1 ][j];
               }
            }
         }
      } //Next j
   } //Next i
} //Sbor()

이 코드를 더 쉽게 이해할 수 있도록 이러한 개인 행렬을 구성하는 공식이 포함된 Excel 스프레드시트를 업로드했습니다.

글쎄, 모든 옵션을 검색하는 것만 남아 있습니다. :)

파일:
arvar.zip  5 kb
 
EvgeTrofi :

옵션 매트릭스는 다음과 같이 구성됩니다.

이 코드를 더 쉽게 이해할 수 있도록 이러한 개인 행렬을 구성하는 공식이 포함된 Excel 스프레드시트를 업로드했습니다.

글쎄, 모든 옵션을 검색하는 것만 남아 있습니다. :)

세인트 피터스 버그

더 간단한 코드 작성:

 void Matrica()
{
   double size = MathPow ( 2 ,Num.Para);
   int trend[];
//---
   ArrayResize (trend,Num.Para);
   for ( int i= 0 ;i<size;i++)
   {
       int x = i;
       int pos = 0 ;
       ArrayInitialize (trend, 0 );
       while (x> 0 )
      {
         trend[pos] = x % 2 ;
         pos++;
         x = MathFloor (x / 2 );
      }
// Вывод варианта      
   }
}
변형 번호는 이진수 시스템으로 표시됩니다.
 

드로다운 및 이윤율 표시 추가(최대 드로우다운에 대한 현재 잔액의 비율). 이 숫자가 높을수록 그래프가 더 안정적으로 보입니다. 이 값은 최적화에 사용됩니다.

주석은 최적화에 소요된 시간(초)을 보여줍니다. :)

 

EvgeTrofi :

주목! 많은 수의 통화 쌍과 분석된 막대를 사용하지 않는 것이 좋습니다.

10개 통화쌍의 드로우다운 및 매개변수 Lengh = 100에 대해 최적화하면 표시기가 약 5초 만에 초기화됩니다!!! 힘내세요 :)

막대의 수 제한을 우회하는 방법에 대해 생각했습니다. 최적화를 위한 시간 간격을 숫자(예: 100)로 나눌 필요가 있습니다. 간격이 1000 bar이면 계산을 수행하는 1000 / 100 = 10개의 시점을 얻습니다. 저것. 숫자가 작을수록 계산 정확도가 높아집니다.
 
kharko :
막대 수 제한을 우회하는 방법에 대해 생각했습니다. 최적화를 위한 시간 간격을 숫자(예: 100)로 나눌 필요가 있습니다. 간격이 1000 bar이면 계산을 수행하는 1000 / 100 = 10개의 시점을 얻습니다. 저것. 숫자가 작을수록 계산 정확도가 높아집니다.

또한이 주제에 대해 긁힌 순무. 면적이 작을수록 적합 가능성이 높아집니다.

반면에 R-Portfolio는 보수 행렬을 사용하며 그 중 정사각형 행렬이 가장 유익합니다. 얼마나 많은 지느러미. 도구가 분석되면 대략적으로 많은 섹션이 있어야 합니다.

그러나 결론은 어떤 순간에는 상관관계가 좋은 도구라도 상관관계의 신호를 변경할 수 있다는 것입니다. 저것들. 섹션을 무작위로 나누면 기호가 변경된 그런 나쁜 순간이 분석에 들어갈 가능성이 있습니다.

요컨대, 섹션을 일정한 간격으로(같은 수의 막대 로) 분할하는 것이 아니라 어느 한 상품의 극한값(예: 포트폴리오에서 몫이 최대인 상품)으로 섹션을 분할해야 한다는 결론에 도달했습니다. . 저것들. 지그재그 또는 다른 알고리즘을 사용하여 추세 전환점을 감지하고 R-Portfolio(또는 다른 포트폴리오 분석 프로그램)에 추가 공급을 위해 이러한 지점(이 막대에만 있음)을 기반으로 하는 따옴표를 삭제합니다. 그래서 가장 정결하고 가장 유익한 것 같습니다. 그렇지 않으면, 예를 들어 옆으로 수정의 변경 지점 사이에 약간의 노이즈가 분석됩니다.