트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 1341

 

관심 있는 사람이 있는 경우 스크립트 코드 - 아아, 클래스 없음

CSV *csv_Write= new CSV();
int NomerStolbca= 0 ;

input int Set_Total= 10 ; //Количество сетов настроек 1к10
input string CB_Dir= "Catboost_Tester" ; //Директория проекта

input string Version= "catboost-0.11.1.exe" ; //Имя exe файла CatBoost
input int depth= 6 ; //Глубина дерева
input int iterations= 1000 ; //Максимальное число итераций (деревьев)
input double learning_rate= 0.03 ; //Шаг обучения
input int od_wait= 100 ; //Число деревьев без улучщения для остановки обучения


//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
      csv_Write.Add_column(dt_string, 0 );
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
      csv_Write.Add_column(dt_string,s());
NomerStolbca= 0 ;

string Train_All[ 23 ];
Train_All[ 0 ]=Version+ " fit" ;
Train_All[s()]= " --learn-set train.csv" ;
Train_All[s()]= " --test-set test.csv" ;
Train_All[s()]= " --column-description %%a" ;
Train_All[s()]= " --has-header" ;
Train_All[s()]= " --delimiter ;" ;
Train_All[s()]= " --model-format CatboostBinary,CPP" ;
Train_All[s()]= " --train-dir ..\Rezultat\RS_01/result_4_%%a" ;
Train_All[s()]= " --depth " +depth;
Train_All[s()]= " --iterations " +iterations; 
Train_All[s()]= " --nan-mode Forbidden " ;
Train_All[s()]= " --learning-rate " +learning_rate; 
Train_All[s()]= " --rsm 1 " ;
Train_All[s()]= " --fold-permutation-block 1" ;
Train_All[s()]= " --boosting-type Ordered" ;
Train_All[s()]= " --l2-leaf-reg 6" ;
Train_All[s()]= " --loss-function Logloss:border=0.5" ;
Train_All[s()]= " --use-best-model" ;
Train_All[s()]= " --eval-metric Precision" ;
Train_All[s()]= " --custom-metric Logloss:border=0.5" ;
Train_All[s()]= " --od-type Iter" ;
Train_All[s()]= " --od-wait " +od_wait;
Train_All[s()]= " --random-seed " ;
NomerStolbca= 0 ;
int Size_Arr= ArraySize (Train_All);
int Seed= 0 ;
int line= 0 ;

for ( int N= 0 ;N<Set_Total;N++)
{
         int line=csv_Write.Add_line();
         csv_Write.Set_value(line, 1 , "FOR %%a IN (*.) DO (" , false );
for ( int Z= 2 ;Z< 22 + 1 ;Z++)csv_Write.Set_value(line,Z, "" , false );

   for ( int i= 1 ;i< 10 + 1 ;i++)
     {
         Seed=N* 10 +i;
         Train_All[ 7 ]= " --train-dir ..\Rezultat\RS_" +Seed+ "/result_4_%%a" ;

         line=csv_Write.Add_line();
         int x= 0 ;         
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++], false );
         csv_Write.Set_value(line,s(),Train_All[x++]+Seed, false );
         NomerStolbca= 0 ;
     }
         line=csv_Write.Add_line();
         csv_Write.Set_value(line, 1 , ")" , false );
         for ( int Z= 2 ;Z< 22 + 1 ;Z++)csv_Write.Set_value(line,Z, "" , false );
   }
   
   
     line=csv_Write.Add_line( 1 , false , true );
     csv_Write.Set_value(line, 1 , "Pause" , false );

      csv_Write.data_separator= '\t' ;
      csv_Write.Write_to_file(CB_Dir+ "\\Setup\\_01_Train_All.txt" , true , true , false , true , false );
      csv_Write.Clear_all();

//---------
string Rezultat_Exam[ 9 ];
Rezultat_Exam[ 0 ]=Version+ " calc" ;
Rezultat_Exam[s()]= " --model-path ..\Rezultat\RS_" + "\result_4_%%a\model.bin" ; //Добавлять номер директории
Rezultat_Exam[s()]= " --input-path exam.csv" ; 
Rezultat_Exam[s()]= " --column-description %%a" ;  
Rezultat_Exam[s()]= " --has-header" ; 
Rezultat_Exam[s()]= " --delimiter ;" ; 
Rezultat_Exam[s()]= " --output-path ..\Rezultat\RS_" + "\result_4_%%a\output" ; //Добавлять номер директории
Rezultat_Exam[s()]= " --has-header" ; 
Rezultat_Exam[s()]= " --prediction-type Probability" ;
NomerStolbca= 0 ;
Seed= 0 ;
Size_Arr= ArraySize (Rezultat_Exam);

for ( int Z= 0 ;Z<Size_Arr+ 1 ;Z++)csv_Write.Add_column(dt_string,Z);
for ( int N= 0 ;N<Set_Total;N++)
{
         int line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , "FOR %%a IN (*.) DO (" , false );

   for ( int i= 1 ;i< 10 + 1 ;i++)
     {
         Seed=N* 10 +i;
         Rezultat_Exam[ 1 ]= " --model-path ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\model.bin" ;
         Rezultat_Exam[ 6 ]= " --output-path ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\output" ;
         int line=csv_Write.Add_line( 1 , false , true );
         int x= 0 ;  
         for ( int S= 1 ;S<Size_Arr+ 1 ;S++)csv_Write.Set_value(line,S,Rezultat_Exam[S- 1 ], false );
     }
         line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , ")" , false );
   }
      
      line=csv_Write.Add_line( 1 , false , true );
      csv_Write.Set_value(line, 1 , "Pause" , false );

      csv_Write.data_separator= '\t' ;
      csv_Write.Write_to_file(CB_Dir+ "\\Setup\\_02_Rezultat_Exam.txt" , true , true , false , true , false );
      csv_Write.Clear_all();

//----------
string Rezultat_Test[ 9 ];
Rezultat_Test[ 0 ]=Version+ " calc" ;
Rezultat_Test[s()]= " --model-path ..\Rezultat\RS_" + "\result_4_%%a\model.bin" ; //Добавлять номер директории
Rezultat_Test[s()]= " --input-path test.csv" ; 
Rezultat_Test[s()]= " --column-description %%a" ;  
Rezultat_Test[s()]= " --has-header" ; 
Rezultat_Test[s()]= " --delimiter ;" ; 
Rezultat_Test[s()]= " --output-path ..\Rezultat\RS_" + "\result_4_%%a\output_test" ; //Добавлять номер директории
Rezultat_Test[s()]= " --has-header" ; 
Rezultat_Test[s()]= " --prediction-type Probability" ;
NomerStolbca= 0 ;
Seed= 0 ;
Size_Arr= ArraySize (Rezultat_Test);

for ( int Z= 0 ;Z<Size_Arr+ 1 ;Z++)csv_Write.Add_column(dt_string,Z);
for ( int N= 0 ;N<Set_Total;N++)
{
         int line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , "FOR %%a IN (*.) DO (" , false );
  
   for ( int i= 1 ;i< 10 + 1 ;i++)
     {
         Seed=N* 10 +i;
         //Train_All[7]=" --train-dir ..\Rezultat\RS_"+Seed+"/result_4_%%a";
         Rezultat_Test[ 1 ]= " --model-path ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\model.bin" ;
         Rezultat_Test[ 6 ]= " --output-path ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\output_test" ;
         int line=csv_Write.Add_line( 1 , false , true );
         int x= 0 ;  
         for ( int S= 1 ;S<Size_Arr+ 1 ;S++)csv_Write.Set_value(line,S,Rezultat_Test[S- 1 ], false );
     }
         line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , ")" , false );
   }
      line=csv_Write.Add_line( 1 , false , true );
      csv_Write.Set_value(line, 1 , "Pause" , false );

      csv_Write.data_separator= '\t' ;
      csv_Write.Write_to_file(CB_Dir+ "\\Setup\\_02_Rezultat_Test.txt" , true , true , false , true , false );
      csv_Write.Clear_all();

//-----------------
string Rezultat_Train[ 9 ];
Rezultat_Train[ 0 ]=Version+ " calc" ;
Rezultat_Train[s()]= " --model-path ..\Rezultat\RS_" + "\\result_4_%%a\model.bin" ; //Добавлять номер директории
Rezultat_Train[s()]= " --input-path train.csv" ; 
Rezultat_Train[s()]= " --column-description %%a" ;  
Rezultat_Train[s()]= " --has-header" ; 
Rezultat_Train[s()]= " --delimiter ;" ; 
Rezultat_Train[s()]= " --output-path ..\Rezultat\RS_" + "\\result_4_%%a\output_train" ; //Добавлять номер директории
Rezultat_Train[s()]= " --has-header" ; 
Rezultat_Train[s()]= " --prediction-type Probability" ;
NomerStolbca= 0 ;
Seed= 0 ;
Size_Arr= ArraySize (Rezultat_Train);

for ( int Z= 0 ;Z<Size_Arr+ 1 ;Z++)csv_Write.Add_column(dt_string,Z);
for ( int N= 0 ;N<Set_Total;N++)
{
         int line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , "FOR %%a IN (*.) DO (" , false );

   for ( int i= 1 ;i< 10 + 1 ;i++)
     {
         Seed=N* 10 +i;
         Rezultat_Train[ 1 ]= " --model-path ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\model.bin" ;
         Rezultat_Train[ 6 ]= " --output-path ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\output_train" ;
         int line=csv_Write.Add_line( 1 , false , true );
         int x= 0 ;  
         for ( int S= 1 ;S<Size_Arr+ 1 ;S++)csv_Write.Set_value(line,S,Rezultat_Train[S- 1 ], false );
     }
         line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , ")" , false );
   }
      line=csv_Write.Add_line( 1 , false , true );
      csv_Write.Set_value(line, 1 , "Pause" , false );

      csv_Write.data_separator= '\t' ;
      csv_Write.Write_to_file(CB_Dir+ "\\Setup\\_02_Rezultat_Train.txt" , true , true , false , true , false );
      csv_Write.Clear_all();


//-----------------
string Metrik_Exam[ 8 ];

Metrik_Exam[ 0 ]=Version+ "  eval-metrics" ;
Metrik_Exam[s()]= " --metrics Logloss:border=0.5,Precision,Recall,Kappa,Accuracy,BalancedAccuracy,AUC,F1,MCC" ;
Metrik_Exam[s()]= " --model-path ..\Rezultat\RS_\result_4_%%a\model.bin" ;
Metrik_Exam[s()]= " --input-path exam.csv" ;
Metrik_Exam[s()]= " --column-description %%a" ; 
Metrik_Exam[s()]= " --has-header" ;
Metrik_Exam[s()]= " --delimiter ;" ; 
Metrik_Exam[s()]= " --result-dir ..\Rezultat\RS_\result_4_%%a\metr\Exam" ;
NomerStolbca= 0 ;
Seed= 0 ;
Size_Arr= ArraySize (Metrik_Exam);

for ( int Z= 0 ;Z<Size_Arr+ 1 ;Z++)csv_Write.Add_column(dt_string,Z);
for ( int N= 0 ;N<Set_Total;N++)
{
         int line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , "FOR %%a IN (*.) DO (" , false );

   for ( int i= 1 ;i< 10 + 1 ;i++)
     {
         Seed=N* 10 +i;
         Metrik_Exam[ 2 ]= " --model-path ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\model.bin" ;
         Metrik_Exam[ 7 ]= " --result-dir ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\metr\Exam" ;
         int line=csv_Write.Add_line( 1 , false , true );
         int x= 0 ;  
         for ( int S= 1 ;S<Size_Arr+ 1 ;S++)csv_Write.Set_value(line,S,Metrik_Exam[S- 1 ], false );
     }
         line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , ")" , false );
   }
      line=csv_Write.Add_line( 1 , false , true );
      csv_Write.Set_value(line, 1 , "Pause" , false );

      csv_Write.data_separator= '\t' ;
      csv_Write.Write_to_file(CB_Dir+ "\\Setup\\_03_Metrik_Exam.txt" , true , true , false , true , false );
      csv_Write.Clear_all();


//-----------------
string Metrik_Test[ 8 ];

Metrik_Test[ 0 ]=Version+ "  eval-metrics" ;
Metrik_Test[s()]= " --metrics Logloss:border=0.5,Precision,Recall,Kappa,Accuracy,BalancedAccuracy,AUC,F1,MCC" ;
Metrik_Test[s()]= " --model-path ..\Rezultat\RS_\result_4_%%a\model.bin" ;
Metrik_Test[s()]= " --input-path test.csv" ;
Metrik_Test[s()]= " --column-description %%a" ; 
Metrik_Test[s()]= " --has-header" ;
Metrik_Test[s()]= " --delimiter ;" ; 
Metrik_Test[s()]= " --result-dir ..\Rezultat\RS_\result_4_%%a\metr\Test" ;
NomerStolbca= 0 ;
Seed= 0 ;
Size_Arr= ArraySize (Metrik_Test);

for ( int Z= 0 ;Z<Size_Arr+ 1 ;Z++)csv_Write.Add_column(dt_string,Z);
for ( int N= 0 ;N<Set_Total;N++)
{
         int line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , "FOR %%a IN (*.) DO (" , false );

   for ( int i= 1 ;i< 10 + 1 ;i++)
     {
         Seed=N* 10 +i;
         Metrik_Test[ 2 ]= " --model-path ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\model.bin" ;
         Metrik_Test[ 7 ]= " --result-dir ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\metr\Test" ;
         int line=csv_Write.Add_line( 1 , false , true );
         int x= 0 ;  
         for ( int S= 1 ;S<Size_Arr+ 1 ;S++)csv_Write.Set_value(line,S,Metrik_Test[S- 1 ], false );
     }
         line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , ")" , false );
   }
      line=csv_Write.Add_line( 1 , false , true );
      csv_Write.Set_value(line, 1 , "Pause" , false );

      csv_Write.data_separator= '\t' ;
      csv_Write.Write_to_file(CB_Dir+ "\\Setup\\_03_Metrik_Test.txt" , true , true , false , true , false );
      csv_Write.Clear_all();

//-----------------
string Metrik_Train[ 8 ];

Metrik_Train[ 0 ]=Version+ "  eval-metrics" ;
Metrik_Train[s()]= " --metrics Logloss:border=0.5,Precision,Recall,Kappa,Accuracy,BalancedAccuracy,AUC,F1,MCC" ;
Metrik_Train[s()]= " --model-path ..\Rezultat\RS_\result_4_%%a\model.bin" ;
Metrik_Train[s()]= " --input-path test.csv" ;
Metrik_Train[s()]= " --column-description %%a" ; 
Metrik_Train[s()]= " --has-header" ;
Metrik_Train[s()]= " --delimiter ;" ; 
Metrik_Train[s()]= " --result-dir ..\Rezultat\RS_\result_4_%%a\metr\Train" ;
NomerStolbca= 0 ;
Seed= 0 ;
Size_Arr= ArraySize (Metrik_Train);

for ( int Z= 0 ;Z<Size_Arr+ 1 ;Z++)csv_Write.Add_column(dt_string,Z, 100 );
for ( int N= 0 ;N<Set_Total;N++)
{
         int line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , "FOR %%a IN (*.) DO (" , false );
   
   for ( int i= 1 ;i< 10 + 1 ;i++)
     {
         Seed=N* 10 +i;
         Metrik_Train[ 2 ]= " --model-path ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\model.bin" ;
         Metrik_Train[ 7 ]= " --result-dir ..\Rezultat\RS_" +Seed+ "\\result_4_%%a\metr\Train" ;
         int line=csv_Write.Add_line( 1 , false , true );
         int x= 0 ;  
         for ( int S= 1 ;S<Size_Arr+ 1 ;S++)csv_Write.Set_value(line,S,Metrik_Train[S- 1 ], false );
     }
         line=csv_Write.Add_line( 1 , false , true );
         csv_Write.Set_value(line, 1 , ")" , false );
   }
      line=csv_Write.Add_line( 1 , false , true );
      csv_Write.Set_value(line, 1 , "Pause" , false );

      csv_Write.data_separator= '\t' ;
      csv_Write.Write_to_file(CB_Dir+ "\\Setup\\_03_Metrik_Train.txt" , true , true , false , true , false );
      csv_Write.Clear_all();

  }
  
//+------------------------------------------------------------------+
int s()
  {
   NomerStolbca++;
   return (NomerStolbca);
  }
 

모델의 병렬성을 분석했습니다. 테스트 세트의 임계값 활성화 지점(기본적으로 0.5)을 보여줍니다.

모델은 일반적으로 매우 유사하지만 활성화가 발생하지 않은 매우 긴 시간 간격이라는 놀라운 사실을 알 수 있습니다. 아마도 그 이유는 월간 막대에서 정보를 가져오는 예측 변수에 있을 것입니다...

 
알렉세이 비아즈미킨 :

모델의 병렬성을 분석했습니다. 테스트 세트의 임계값 활성화 지점(기본적으로 0.5)을 보여줍니다.

모델은 일반적으로 매우 유사하지만 활성화가 발생하지 않은 매우 긴 시간 간격이라는 놀라운 사실을 알 수 있습니다. 아마도 그 이유는 월간 막대에서 정보를 가져오는 예측 변수에 있을 것입니다...

그런 다음 각 막대에 일련의 트랜잭션이 있습니까? NS에서도 비슷한 경험을 했습니다. 결론은 비슷합니다. 큰 TF는 영향을 미치고 작은 TF는 보완합니다.
 
도서관 :
그런 다음 각 막대에 일련의 트랜잭션이 있습니까? NS에서도 비슷한 경험을 했습니다. 결론은 비슷합니다. 큰 TF는 영향을 미치고 작은 TF는 보완합니다.

실제로는 화면 너비보다 더 많은 거래가 있습니다. 나는 많이 게시하지 않았습니다. 그러나 이것이 그룹화의 형태로 발생한다는 사실 - 그렇습니다. 진입 가능성을 이만큼 줄인 상위 TF를 버릴 가치가 있느냐 없느냐 그것이 문제로다...

 
Alexander_K :

++++

Alexei에게 불쾌감을주지 마십시오. 그가 쓴 것에서 한 단어라도 이해하면 천둥으로 저를 때리십시오. 목표도 달성 방법도 명확하고 정당하지 않습니다. 신경망에서 15년을 보냈고 지금은 세차장에서 일하는 교사의 정신이 그를 덮칩니다.

네, 우리 모두는 신 아래 걸으며 세차장이나 일종의 관리자와 별 차이가 없습니다. 의사 파트너로 "성장한" 하지만 은퇴하기 전에 쉽게 엉덩이에 발로 차기도 합니다. 아무것도 남지 않았습니다. 이제 100명의 직원을 위한 일부 서양식 사무실에는 30명의 "부사장"이 있고, 중간 관리자는 이제 월 50명의 부사장입니다.))) 웃음과 죄 ...

어떤 식 으로든 세차장에서 일하는 것에 대한 의식적인 위험과 실제 위협이 있지만 큰 열정, 관심 및 모험을 동반하거나 훨씬 더 큰 위험이 있지만 "경력 성장"의 "카펫 아래" 숨겨져 있습니다. 과정과 결과 모두 실망스럽습니다. 나는 평민으로 태어났습니다. 희망을 즉시 포기하는 것이 낫습니다. 그러나 "성공에 도달"하려고 노력할 수 있습니다. 여전히 잃을 것이 없습니다. 적어도 죽기 전에 할 수 있는 모든 일을 했다고 말할 수 있습니다. 평생을 암캐처럼 기어 다니지 마십시오))))

 
알렉세이 비아즈미킨 :

진입 가능성을 이만큼 줄인 상위 TF를 버릴 가치가 있느냐 없느냐 그것이 문제로다...

글쎄, 수동으로 테스트하고 결정하거나 최적화하십시오.

 
도서관 :

글쎄, 수동으로 테스트하고 결정하거나 최적화하십시오.

시트를 집어 들고 원인을 식별해야합니다. 앞으로 며칠 안에 할 것입니다.이 경우 코딩해야합니다.

지금까지 여기에 몇 가지 모델이 포함되어 있습니다. 더 큰 스프레드가 있는 것으로 보이며, 이는 페어링 적용 측면에서 흥미로울 수 있습니다.


 

축하합니다.

터미널: R 언어 사용하는 애플리케이션을 통해 MetaTrader 5 터미널에서 데이터를 요청하기 위한 API를 추가했습니다 .

작업을 위해 특별한 MetaTraderR 패키지를 준비했습니다. 여기에는 R과 MetaTrader 5 터미널, 문서 및 보조 r-파일 간의 상호 작용을 위한 DLL이 포함되어 있습니다. 패키지는 현재 CRAN 리포지토리에 등록되는 중이며 곧 다운로드하여 설치할 수 있습니다.

계속을 기다리자.

행운을 빕니다

 
블라디미르 페레르벤코 :

축하합니다.

터미널: R 언어 사용하는 애플리케이션을 통해 MetaTrader 5 터미널에서 데이터를 요청하기 위한 API를 추가했습니다 .

작업을 위해 특별한 MetaTraderR 패키지를 준비했습니다. 여기에는 R과 MetaTrader 5 터미널, 문서 및 보조 r-파일 간의 상호 작용을 위한 DLL이 포함되어 있습니다. 패키지는 현재 CRAN 리포지토리에 등록되는 중이며 곧 다운로드하여 설치할 수 있습니다.

계속을 기다리자.

행운을 빕니다

개발자는 피드백 문제를 무시합니다. 즉, 그렇게 될 가능성은 크지 않습니다...

 

다음은 샘플에서 모델의 동작을 나타내는 또 다른 옵션입니다. 여기에서 색상으로:

TP - 올바른 분류 "1" - 녹색

FP - 오분류 "1" - 빨간색

FN - 잘못된 분류 "0"(실제로는 "1"이 누락됨) - 파란색

화면의 크기가 커서 클릭으로 보는 것이 더 재미있습니다.

그리고 두 가지 옵션을 누를 때 GIF는 명확성을 위해 전환됩니다.

파란색이 많기 때문에 내 모델이 시장을 거의 다루지 않는다는 것이 분명합니다. 행동하지 않는 이유를 이해해야 합니다. 아마도 정확성뿐만 아니라 학습을 중단하는 다른 방법을 찾아야 할 것입니다. 물론 완성도와 정확도를 어느 정도는 제한하겠지만, 알 수 없는 이유로 이 교육 중단 옵션은 개발자가 제공하지 않아 안타깝습니다.

사유: