交易中的机器学习:理论、模型、实践和算法交易 - 页 1341 1...133413351336133713381339134013411342134313441345134613471348...3399 新评论 Aleksey Vyazmikin 2019.02.15 15:05 #13401 脚本代码,如果有人感兴趣的话--唉,没课了 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); } Aleksey Vyazmikin 2019.02.15 15:54 #13402 做了一个平行模型分析,即在测试样本上显示阈值激活点(默认为0.5)。 可以看出,这些模型在总体上是非常相似的,但另一个令人惊讶的地方是,没有发生激活的时间间隔非常大。也许原因是一些预测器从月球棒中获取信息... Forester 2019.02.15 16:09 #13403 阿列克谢-维亚兹米 金。做了一个平行模型分析,即在测试样本上显示阈值激活点(默认为0.5)。 可以看出,这些模型在总体上是非常相似的,但另一个令人惊讶的地方是,没有发生激活的时间间隔非常大。也许原因是在一些预测器中,该预测器从月线中获取信息... 然后在每个柱子上连续进行许多次交易?我和NS有类似的问题。结论是类似的--大的TF影响,而小的则是补充。 Aleksey Vyazmikin 2019.02.15 16:14 #13404 elibrarius。 然后在每个柱子上连续做了一堆交易?我有一个类似的,与NS。结论是类似的--大型TF在影响,小型TF在补充。并非如此,只是这些交易比屏幕的宽度要大--我没有发布大的交易。但是,事实上,它是以分组的形式出现的--是的。是否值得扔掉那些把进入的可能性削减得如此之多的上层TF是个问题...... Женя 2019.02.15 16:27 #13405 Alexander_K:+++ 无意冒犯阿列克谢--如果我理解他所写的一个字的话,请把我打死。无论是目标还是实现目标的方法都不明确,也没有得到证实。老师的精神,他花了15年时间研究神经网络,现在在一家洗车行工作,所以在他身上盘旋。是的,我们都在上帝手下行走,在洗车场没有什么特别的区别,或者一些经理,"长大了 "的伪伙伴,然而,他也可以在退休前轻易地被踢掉屁股,把他留在破碎的低谷。现在在一些西式的公司里,100个员工有30个 "副总",中层经理现在是副总,月薪5万)))。这很有趣,也很有罪恶感...... 要么是有意识的冒险,在洗车店工作的真正威胁,但在路上有更多的热情、兴趣和冒险,要么是更大的风险,但隐藏在 "地毯下 "的 "职业成长",过程和结果都令人失望。如果你生来就是平民,你最好马上放弃希望,但你可以尝试 "成功",反正你也没什么损失,至少在你死之前,你可以说你已经尽力了,不必卑躬屈膝地当一辈子的婊子)))。 Forester 2019.02.15 16:42 #13406 阿列克谢-维亚兹米 金。是否值得扔掉上面的TFs,因为它把进入的可能性削减了很多,或者不值得,这是一个问题......那么,要么手动测试并决定,要么优化它。 Aleksey Vyazmikin 2019.02.15 16:50 #13407 elibrarius。好吧,要么手动出汗并决定,要么做一些优化。我需要翻阅床单,找到原因,我将在接下来的几天里找到它--我需要为此得到一些休息。 到目前为止,有几个模型被标记所动摇--它们似乎有更多的变化,这在配对方面可能是有趣的 Vladimir Perervenko 2019.02.15 19:44 #13408 恭喜你。 终端: 增加了API,用于通过使用R语言 的应用程序从MetaTrader 5终端请求数据。我们准备了一个特别的软件包MetaTraderR。它包含用于R和MetaTrader 5终端之间互动的DLL,文档和辅助R文件。现在,该软件包正在CRAN资源库中注册,很快就可以下载和安装 了。 让我们等待续集的到来。 祝好运 Aleksey Vyazmikin 2019.02.16 01:12 #13409 弗拉基米尔-佩雷文科。恭喜你。 终端: 增加了API,用于通过使用R语言 的应用程序从MetaTrader 5终端请求数据。我们准备了一个特别的软件包MetaTraderR。它包含用于R和MetaTrader 5终端之间互动的DLL、文档和辅助R文件。该软件包正在CRAN资源库中注册,并将 在最近的将来可供下载和安装。 让我们等待续集的到来。 祝好运开发者忽略了反馈问题,所以概率不是很高,会被... Aleksey Vyazmikin 2019.02.16 05:12 #13410 这里有另一种表示样本中模型行为的方法--这里是通过颜色来表示。 TP - 正确的分类 "1" - 绿色 FP - 错误分类 "1" - 红色 FN--错误分类 "0"(实际缺失 "1")--蓝色 屏幕尺寸很大--通过点击观看更有意思。 而按下两个变体的GIF,为了清晰起见,将进行切换 可以看出,我的模型在市场上的浸润非常少,因为有很多蓝色的东西--我们需要研究不活跃的原因。也许我应该寻找其他停止学习的方法,而不仅仅是通过准确性。我当然会把完整性和准确性都设置到一定的限度,但不知什么原因,开发商没有提供这种停止训练的选项,但这是很遗憾的。 1...133413351336133713381339134013411342134313441345134613471348...3399 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
脚本代码,如果有人感兴趣的话--唉,没课了
做了一个平行模型分析,即在测试样本上显示阈值激活点(默认为0.5)。
可以看出,这些模型在总体上是非常相似的,但另一个令人惊讶的地方是,没有发生激活的时间间隔非常大。也许原因是一些预测器从月球棒中获取信息...
做了一个平行模型分析,即在测试样本上显示阈值激活点(默认为0.5)。
可以看出,这些模型在总体上是非常相似的,但另一个令人惊讶的地方是,没有发生激活的时间间隔非常大。也许原因是在一些预测器中,该预测器从月线中获取信息...
然后在每个柱子上连续做了一堆交易?我有一个类似的,与NS。结论是类似的--大型TF在影响,小型TF在补充。
并非如此,只是这些交易比屏幕的宽度要大--我没有发布大的交易。但是,事实上,它是以分组的形式出现的--是的。是否值得扔掉那些把进入的可能性削减得如此之多的上层TF是个问题......
+++
无意冒犯阿列克谢--如果我理解他所写的一个字的话,请把我打死。无论是目标还是实现目标的方法都不明确,也没有得到证实。老师的精神,他花了15年时间研究神经网络,现在在一家洗车行工作,所以在他身上盘旋。
是的,我们都在上帝手下行走,在洗车场没有什么特别的区别,或者一些经理,"长大了 "的伪伙伴,然而,他也可以在退休前轻易地被踢掉屁股,把他留在破碎的低谷。现在在一些西式的公司里,100个员工有30个 "副总",中层经理现在是副总,月薪5万)))。这很有趣,也很有罪恶感......
要么是有意识的冒险,在洗车店工作的真正威胁,但在路上有更多的热情、兴趣和冒险,要么是更大的风险,但隐藏在 "地毯下 "的 "职业成长",过程和结果都令人失望。如果你生来就是平民,你最好马上放弃希望,但你可以尝试 "成功",反正你也没什么损失,至少在你死之前,你可以说你已经尽力了,不必卑躬屈膝地当一辈子的婊子)))。
是否值得扔掉上面的TFs,因为它把进入的可能性削减了很多,或者不值得,这是一个问题......
那么,要么手动测试并决定,要么优化它。
好吧,要么手动出汗并决定,要么做一些优化。
我需要翻阅床单,找到原因,我将在接下来的几天里找到它--我需要为此得到一些休息。
到目前为止,有几个模型被标记所动摇--它们似乎有更多的变化,这在配对方面可能是有趣的
恭喜你。
终端: 增加了API,用于通过使用R语言 的应用程序从MetaTrader 5终端请求数据。
我们准备了一个特别的软件包MetaTraderR。它包含用于R和MetaTrader 5终端之间互动的DLL,文档和辅助R文件。现在,该软件包正在CRAN资源库中注册,很快就可以下载和安装 了。
让我们等待续集的到来。
祝好运
恭喜你。
终端: 增加了API,用于通过使用R语言 的应用程序从MetaTrader 5终端请求数据。
我们准备了一个特别的软件包MetaTraderR。它包含用于R和MetaTrader 5终端之间互动的DLL、文档和辅助R文件。该软件包正在CRAN资源库中注册,并将 在最近的将来可供下载和安装。
让我们等待续集的到来。
祝好运
开发者忽略了反馈问题,所以概率不是很高,会被...
这里有另一种表示样本中模型行为的方法--这里是通过颜色来表示。
TP - 正确的分类 "1" - 绿色
FP - 错误分类 "1" - 红色
FN--错误分类 "0"(实际缺失 "1")--蓝色
屏幕尺寸很大--通过点击观看更有意思。
而按下两个变体的GIF,为了清晰起见,将进行切换
可以看出,我的模型在市场上的浸润非常少,因为有很多蓝色的东西--我们需要研究不活跃的原因。也许我应该寻找其他停止学习的方法,而不仅仅是通过准确性。我当然会把完整性和准确性都设置到一定的限度,但不知什么原因,开发商没有提供这种停止训练的选项,但这是很遗憾的。