龙听期货论坛's Archiver






 微信: QQ:

龙听 发表于 2022-11-2 14:30

【optimalfgeo】

[code]//OptimalFGeo by George Pruitt
//My interpretation Sept. 2018
//www.georgepruitt.com
//georgeppruitt@gmail.com

input: minNumTrades(numericSimple);
vars: totalTradesCount(0),tradeCnt(0);
array: tradesArray[500](0);

vars: iCnt(00),jCnt(00),grandTot(0),highI(0);
vars: optF(0.0),gMean(0.0),fVal(0.0),HPR(0.0),TWR(0.0),hiTWR(0.0);
vars: biggestLoser(0.0),gat(0.0);

totalTradesCount = totalTrades;
If totalTradesCount > totalTradesCount[1] then
begin
        tradeCnt = tradeCnt + 1;
        tradesArray[tradeCnt] = positionProfit(1);
end;

// Taken from my Fortran library - GPP and Vince Book PMF

optF = 0.0;
gMean = 1.00;
gat   = 0.00;
//Only calculate if new trade
IF(tradeCnt>minNumTrades and totalTradesCount > totalTradesCount[1]) then
Begin
        biggestLoser = 0;
        grandTot = 0;
        For iCnt = 1 to tradeCnt //get the biggest loser
        begin
                   grandTot = grandTot + tradesArray[iCnt];
                   IF(tradesArray[iCnt]<biggestLoser) then biggestLoser = tradesArray[iCnt];
        end;
//        print(grandTot," ",biggestLoser);
        IF({grandTot > 0 and} biggestLoser <0) then
        begin
//                print("Inside TWR Calculations");
                highI = 0;
                hiTWR = 0.0;
                for iCnt = 1 to 100
                begin
                        fVal = .01 * iCnt;
                        TWR = 1.0;
                        for jCnt = 1 to tradeCnt // calculate the Terminal Wealth Relative
                        begin
                            HPR = 1. + (fVal * (-1*tradesArray[jCnt]) / biggestLoser);
                            TWR = TWR * HPR;
//                           print(fVal," ",iCnt," " ,jCnt," Trades ",tradesArray[jCnt]," HPR ",HPR:6:4," TWR : ",TWR:6:4," hiTWR",hiTWR:6:4," bl ",biggestLoser);
                        end;
//                        print(iCnt," ",TWR," ",hiTWR);
                        IF(TWR>hiTWR) THEN
                        begin
                            hiTWR = TWR;
                            optF = fVal;            // assign optF to fVal in case its the correct one               
                        end
                        else
                            break;                     //highest f found - stop looping
                end;               
                If (TWR <= hiTWR or optF >= 0.999999) then
                begin
                        TWR  = hiTWR;
                        OptimalFGeo = optF;  //assign optF to the name of the function
                end;      
                gmean = power(TWR,(1.0 / tradeCnt));
               
                if(optF<>0) then gat   = (gMean - 1.0) * (biggestLoser / -(optF));               
                print(d," gmean ",gmean:6:4," ",gat:6:4);  // I calculate the GMEAN and GeoAvgTrade
        end;
end;

[/code]

页: [1]
渠道·推广(20年运营值得信赖!)▼:温馨提示:期货论坛稳定、流畅的访问体验有赖于赞助商的广告支持,赞助商业务内容非本站官方业务,期货、证券及外汇投资均有亏损的风险,访问赞助商广告即代表您已了解其中的风险。欢迎意向赞助商联系客服或管理员咨询相关事宜。
                     
❤️2025年通过期货论坛开户享受如下优惠政策:政策一:手续费最低交易所+1分起,政策二:日内炒单及大资金享更高比率返还,政策三:保证金可申请交易所标准+0,政策四:开户即享有论坛Prime会员资格(价值199元/年),开户咨询管理员或右侧客服! 😋欧美期货杂志购买、下载与中文翻译:/thread-10603-1-1.html |TB/MC开户优惠政策:/thread-5986-1-1.html2025年最新交易所手续费表:/thread-7537-1-1.htmlSC2.png2025年最新中文翻译:/thread-160355-1-1.html;
欧美期货程序化期刊中文翻译目录: 【1982/83.01-12期】 【1984.01-12期】 【1985.01-12期】 【1986.01-12期】 【1987.01-12期】 【1988.01-12期】 【1989.01-12期】 【1990.01-12期】 【1991.01-12期】 【1992.01-12期】 【1993.01-12期】 【1994.01-12期】 【1995.01-12期】 【1996.01-12期】 【1997.01-12期】 【1998.01-12期】 【1999.01-12期】 【2000.01-12期】 【2001.01-12期】 【2002.01-12期】 【2003.01-12期】 【2004.01-12期】 【2005.01-12期】 【2006.01-12期】 【2007.01-12期】 【2008.01-12期】 【2009.01-12期】 【2010.01-12期】 【2011.01-12期】 【2012.01-12期】 【2013.01-12期】 【2014.01-12期】正在更新中...... 【2015.01-12期】待补 【2016.01-12期】待补 【2017.01-12期】正在更新中...... 【2018.01-12期】 【2019.01-12期】 【2020.01-12期】 【2021.01-12期】 【2022.01-12期】 【2023.01-12期】 【2024.01-12期】 【2025.01-12期】正在更新中......