如何使用Excel計算策略
Excel是快速計算和模擬的絕佳試驗場。以下是最小的「工具包」,可用於測試無代碼的想法:表(Ctrl+T),結構化鏈接,動態數組,匯總表,「假設分析」(Goal Seek,數據表,腳本管理器),RAND上的蒙特卡洛(),以及用於選擇賭註大小的Solver。
1)基本檔案結構(3張工作表)
「選項」表格'
「賭註」(小說)- 「銀行_開始」
- 「HF」(獲勝旋轉比例,如果需要)
- 'q_≥×10'(有意義的事件的機會)
- `Spin` (1…N)
- 「Bet」(=參數[投註])
- 「U」(=RAND())-均勻隨機的
- 「X」(乘法器)-按累積表
- `Win` (=BetX)
- `Hit` (=`--(X>0)`)
- `Hit_≥×10` (=`--(X>=10)`)
- `Net` (=Win−Bet)
- 「銀行」(累積自「銀行_開始」)
李斯特「報告」
匯總表/圖表:獎金分配,累積銀行,頻率,間隔。
2)如何將RAND()變成「旋轉支付」
在「選項」上,設置累積: 在'tblSpins [X]'中,使用累積搜索:- 制作命名的「CumP」和「ValsX」系列。
=XLOOKUP([@U], CumP, ValsX,, 1)參數「1」給出了「小於或等於」(步進函數)的搜索。
替代方案(沒有XLOOKUP):
=INDEX(ValsX, MATCH([@U], CumP, 1))3)等待頻率和間隔
Hit Frequency(HF)樣本:
=AVERAGE(tblSpins[Hit])
=AVERAGE(tblSpins[Hit_≥×10])事件前間隔(幾何近似值): 如果閾值參數具有概率「q」(來自「參數」),則
平均間隔: '=1/q'
中位數: '=ROUNDUP(LN(0。5)/LN(1-q),0)`
邏輯中的經驗間隔:- 創建輔助列「Schyotchik_bez_≥×10」,該列在命中時重置為0,然後生長1。「命中」時刻的值列表是間隔。通過它們讀取中位數和Percentile (PERCENTILE/QUARTILE)。
4)RTP,散布和縮小
實際RTP:
=SUM(tblSpins[Win])/SUM(tblSpins[Bet])百分率× 100%。
損失系列(L-streak):- 「Lose」=「-(tblSpins [Win] - 「L_Run」=「當前系列長度」列(具有IF的公式和對上一行的引用)
- 「MAX (L_Run)」是最大系列。
最大縮寫(max drawdown)
「Peak」=「Bank」的「累積最大值」列: '=MAX([@[Bank]];前面[Peak])"
「DD」=「=[@Peak]-[@Bank]」列]'
'MAX (DD)'-深度;'MAX (DD)/Bank_start'-銀行股份。
5)匯總表和圖表
乘數直方圖:用「X」籃子分組(≤×1,× 1-× 5,× 5-× 20,≥×20)。
銀行行:「銀行」圖表「Spin」。
「重要」熱門歌曲的累積頻率:每100/500旋轉塊的點擊率。
如果保留通用日誌,Slicers將允許按插槽/策略過濾。
6)「萬一」分析: Goal Seek,數據表,腳本
Goal Seek(選擇參數)- 「找到降息中位數≤ 150個降息的比率。」
- 「尋找起始銀行來生存兩個中位數≥×10間隔。」
數據表(1因子和2因子)
軸參數:比率和會話長度。
模型單元格中的度量:完成≥0%或中位下垂的機會。
表格將返回結果網格以進行視覺選項選擇。
腳本管理器
Flat,軟進步,硬進步,購買獎金-一組固定參數(投註/退出規則)。
7)蒙特卡洛(一個公式)
想法:將M「迷你會議」推向N旋轉,並收集結果分配。
Excel 365(動態數組),在「報告」頁面上:1.參數:'N=1000'(自旋),'M=1000'(會話)。
2.生成「N × M」大小的「U」矩陣:
=RANDARRAY(N;M)- 創建LAMBDA 'Fdraw (u)=XLOOKUP (u;CumP;ValsX;;1)`
=MAP(RANDARRAY(N;M);LAMBDA(u;Fdraw(u)))
=BYCOL(X_mat;LAMBDA(col;SUM(colStakes)-NStawka)5.根據「結果」向量,計算分數,均值,≥0%的份額等。
8)置信區間(無VBA)
有一個經驗列「X」(每個自旋的乘法)。進行索引數組:
=RANDBETWEEN(1;ROWS (X)//N長度矢量
=INDEX(X;索引)計算平均/分位數;在「M」(BYCOL)列上重復-獲得RTP/HF/分位數的分數分布和置信區間。
9)投註策略比較
添加帶有策略規則的「Bet」列:- Flat:「=參數[賭註]」
- 溫和的進展:'=IF(Lose;Bet1,2;參數[賭註])'(示例)
- '=IF(銀行<=銀行_start-StopLoss;0;IF (Bank>=Bank_start+TakeProfit;0;Bet))`
- 零利率將「停止」會話。然後比較標記/腳本:中位數結果、IQR、max drawdown、≥0%的機會。
10)Solver: 從銀行挑選利率份額
目標:最大限度地減少第95次沈降的風險或最大程度地提高在「f」變量(利率=「fBank_當前」,帶有「≥0」限制)下完成0 目標單元:風險/成功指標。 可更改:「f」。 限制:「f_min≤f≤f_max」;「破壞≤目標的風險」。 Solver將根據您的模擬(可能需要降低N/M)進行「f」。 11)文章/客戶報告(模板) RTP/策略插槽/版本: ……/……/flat/進展 12)頻繁的錯誤以及如何避免錯誤 在單個樣本中混合RTP插槽/版本-結果無效。 沒有間隔的短系列(≤1000旋轉)的結論是一個軼事,不是統計數據。 不固定種子的RAND()-比較單個「U」集上的策略:在所有腳本中使用一個隨機數陣列(取消「噪聲」)。 進步是為了獲得「緊急補償」-改變分配形式而不是期望。 缺乏沈降控制-始終考慮最大拖曳和「沙漠」持續時間。 13)微型海德Excel 365功能(替換) XLOOKUP/XMATCH-閾值搜索(VLOOKUP/MATCH替代)。 LET/LAMBDA-將模型設計為功能(重復使用)。 SEQUENCE/RANDARRAY/BYROW/BYCOL/MAP/SCAN是用於Monte Carlo和聚合的動態數組。 PERCENTILE.INC / QUARTILE.INC-quantili;COUNTIFS/SUMIFS-籃子。 沒有365?使用INDEX+MATCH、大型公式(Ctrl+Shift+Enter)、數據表而不是MAP/BYCOL。 底線:Excel允許在幾個小時內組裝一個工作實驗室,用於策略:從通過給定分布生成結果到蒙特卡洛,並報告RTP,命中率,間隔和縮寫。在相同的噪音上比較策略,顯示分位數和置信區間,使用「如果」和Solver來選擇賭註和限制。所以你會得到關於風險和可持續性的可復制結論-沒有幻想和「時間」。
