最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

期貨量化軟件:赫茲量化中模式搜索---暴力方法深入

2023-10-18 17:38 作者:大牛啊呢  | 我要投稿

這次我們將使用修改后的應用程序版本對貨幣對進行深入分析。我要感謝用戶 Aleksey Vyazmikin 對項目開發(fā)的貢獻,他的建議在技術上非常有用,并推動了進一步的開發(fā)。我將在下一篇文章中繼續(xù)這項工作,并將提供更有趣的數(shù)據(jù)和結果。我認為,在全局范圍內展示對特定貨幣對的分析的有效性,以及展示對最長和最短持續(xù)時間間隔的分析的差異,是非常重要的。因為我的時間和計算資源是有限的,所以我只能在一個時間范圍內涵蓋幾個貨幣對。然而,對于第一次了解全局模式的人來說,這似乎已經(jīng)足夠了。在分析數(shù)據(jù)時,我將另外使用上一篇文章中的數(shù)據(jù)。


為什么這個主題這么有趣?

通常,赫茲量化交易程序員的所有想法都意味著無數(shù)的代碼行、無數(shù)的測試、優(yōu)化、前后測試。在大多數(shù)情況下,我們得不到我們想要的。有些程序員對這個特定的問題感到厭煩。研究和搜索的過程變成了一個常規(guī)。如果工作不能給你帶來任何道德上的滿足感和金錢,那么你很可能會退出,我就是這樣。我決定告別常規(guī),開始自動化機器可以成功執(zhí)行的操作。這臺機器沒有感情,它是一個理想的工人,不像我。當然,機器不像人那樣思維開闊,但它擁有大量的計算資源,可以更輕松、更快地實現(xiàn)一些過程。我有一個選擇,開始寫我自己的神經(jīng)網(wǎng)絡架構能夠進化,或開始用最簡單的方法來解決問題。我決定采用后一種方法。盡管它很簡單,但與MQL產(chǎn)品的簡單編程相比,該項目為創(chuàng)造力和興趣提供了空間。使用通用模板并通過逐步添加必要的功能對其進行進一步開發(fā)是一個好主意。我們可以從一個簡單的模板開始,然后為特定的工作原理創(chuàng)建新的模板。這樣,我們就可以擺脫枯燥的日常工作,而繼續(xù)我們的開發(fā)。懶惰是進步之父。


暴力程序的新版本和更改列表

程序中只有一個更改,顯示在紅色框中。這個設置取自第二個選項卡,在那里它顯示了它的最佳狀態(tài)。添加此設置的原因是它對最終結果的質量有很大的影響。在分析期間,在第一個選項卡上,所有結果最初都按質量排序。利潤因素或以點數(shù)表示的預期收益被用作質量標準。但是程序不允許我們對圖形形狀進行評估。我使用了線性因子(與直線的相似性)作為形狀標準,這樣我們就不需要目視檢查每個選項。在這里,我們可以得出這樣的結論:更直和更平滑的圖更有可能在第二個選項卡上給出高質量的方案。同樣,這樣的圖上結果數(shù)量會減少,這些結果將被第二個選項卡上的過濾器丟棄。計算此值需要第二次過程,如果此過濾器被激活,則暴力計算速度大約慢2倍。但對我們來說,重要的不是速度,而是獲得的主要結果的總數(shù),因為它們的質量影響著進一步的成效。

double Val; int iterator; double PolinomTrade()//Polynomial for trading ? { ? Val=0; ? iterator=0; ? if ( DeepBruteX <= 1 ) ? ? ?{ ? ? ?for ( int i=0; i<CNum; i++ ) ? ? ? ? { ? ? ? ? Val+=C1[iterator]*(Close[i+1]-Open[i+1])/Point; ? ? ? ? iterator++; ? ? ? ? } ? ? ?for ( int i=0; i<CNum; i++ ) ? ? ? ? { ? ? ? ? Val+=C1[iterator]*(High[i+1]-Open[i+1])/Point; ? ? ? ? iterator++; ? ? ? ? } ? ? ?for ( int i=0; i<CNum; i++ ) ? ? ? ? { ? ? ? ? Val+=C1[iterator]*(Open[i+1]-Low[i+1])/Point; ? ? ? ? iterator++; ? ? ? ? } ? ? ?for ( int i=0; i<CNum; i++ ) ? ? ? ? { ? ? ? ? Val+=C1[iterator]*(High[i+1]-Close[i+1])/Point; ? ? ? ? iterator++; ? ? ? ? } ? ? ?for ( int i=0; i<CNum; i++ ) ? ? ? ? { ? ? ? ? Val+=C1[iterator]*(Close[i+1]-Low[i+1])/Point; ? ? ? ? iterator++; ? ? ? ? } ? ? ?return Val; ? ? ? ?} ? else ? ? ?{ ? ? ?CalcDeep(C1,CNum,DeepBruteX); ? ? ?return ValStart; ? ? ?} ? } ///Fractal calculation of numbers double ValW;//the number where everything is multiplied (and then added to ValStart) uint NumC;//the current number for the coefficient double ValStart;//the number where to add everything void Deep(double &Ci0[],int Nums,int deepC,int deepStart,double Val0=1.0)//intermediary fractal ? { ? for ( int i=0; i<Nums; i++ ) ? ? ?{ ? ? ?if (deepC > 1) ? ? ? ? { ? ? ? ? ValW=(Close[i+1]-Open[i+1])*Val0; ? ? ? ? Deep(Ci0,Nums,deepC-1,deepStart,ValW); ? ? ? ? } ? ? ?else ? ? ? ? { ? ? ? ? ValStart+=(Ci0[NumC]/Combinations(deepStart,Nums*5))*(Close[i+1]-Open[i+1])*Val0/Point; ? ? ? ? NumC++; ? ? ? ? } ? ? ?} ? ? ? ? for ( int i=0; i<Nums; i++ ) ? ? ?{ ? ? ?if (deepC > 1) ? ? ? ? { ? ? ? ? ValW=(High[i+1]-Open[i+1])*Val0; ? ? ? ? Deep(Ci0,Nums,deepC-1,deepStart,ValW); ? ? ? ? } ? ? ?else ? ? ? ? { ? ? ? ? ValStart+=(Ci0[NumC]/Combinations(deepStart,Nums*5))*(High[i+1]-Open[i+1])*Val0/Point; ? ? ? ? NumC++; ? ? ? ? } ? ? ?} ? for ( int i=0; i<Nums; i++ ) ? ? ?{ ? ? ?if (deepC > 1) ? ? ? ? { ? ? ? ? ValW=(Open[i+1]-Low[i+1])*Val0; ? ? ? ? Deep(Ci0,Nums,deepC-1,deepStart,ValW); ? ? ? ? } ? ? ?else ? ? ? ? { ? ? ? ? ValStart+=(Ci0[NumC]/Combinations(deepStart,Nums*5))*(Open[i+1]-Low[i+1])*Val0/Point; ? ? ? ? NumC++; ? ? ? ? } ? ? ?} ? for ( int i=0; i<Nums; i++ ) ? ? ?{ ? ? ?if (deepC > 1) ? ? ? ? { ? ? ? ? ValW=(High[i+1]-Close[i+1])*Val0; ? ? ? ? Deep(Ci0,Nums,deepC-1,deepStart,ValW); ? ? ? ? } ? ? ?else ? ? ? ? { ? ? ? ? ValStart+=(Ci0[NumC]/Combinations(deepStart,Nums*5))*(High[i+1]-Close[i+1])*Val0/Point; ? ? ? ? NumC++; ? ? ? ? } ? ? ?} ? for ( int i=0; i<Nums; i++ ) ? ? ?{ ? ? ?if (deepC > 1) ? ? ? ? { ? ? ? ? ValW=(Close[i+1]-Low[i+1])*Val0; ? ? ? ? Deep(Ci0,Nums,deepC-1,deepStart,ValW); ? ? ? ? } ? ? ?else ? ? ? ? { ? ? ? ? ValStart+=(Ci0[NumC]/Combinations(deepStart,Nums*5))*(Close[i+1]-Low[i+1])*Val0/Point; ? ? ? ? NumC++; ? ? ? ? } ? ? ?} ? } ? void CalcDeep(double &Ci0[],int Nums,int deepC=1) ? { ? NumC=0; ? ValStart=0.0; ? for ( int i=0; i<deepC; i++ ) Deep(Ci0,Nums,i+1,i+1);


期貨量化軟件:赫茲量化中模式搜索---暴力方法深入的評論 (共 條)

分享到微博請遵守國家法律
太原市| 辽阳县| 兖州市| 渝北区| 紫云| 承德县| 曲麻莱县| 合阳县| 青州市| 江孜县| 新绛县| 福鼎市| 神木县| 岢岚县| 长乐市| 新河县| 茶陵县| 揭西县| 天水市| 吉林市| 长泰县| 巴南区| 鄂温| 昌平区| 和平区| 涞源县| 丁青县| 万盛区| 绥棱县| 清河县| 富顺县| 博客| 武功县| 遂溪县| 金乡县| 沙河市| 炎陵县| 武山县| 迁西县| 蕉岭县| 乐平市|