COP交易系統(tǒng)策略(TB版)_第1頁(yè)
COP交易系統(tǒng)策略(TB版)_第2頁(yè)
COP交易系統(tǒng)策略(TB版)_第3頁(yè)
COP交易系統(tǒng)策略(TB版)_第4頁(yè)
COP交易系統(tǒng)策略(TB版)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

COP交易系統(tǒng)策略(TB版)核心內(nèi)容:1.CrossOver函數(shù)該函數(shù)用于判斷價(jià)格序列Price1是否在某一點(diǎn)上穿過(guò)價(jià)格序列Price2(即價(jià)格1從下方穿越價(jià)格2)。參數(shù):NumericSeriesPrice1(1):第一個(gè)價(jià)格序列。NumericSeriesPrice2(1):第二個(gè)價(jià)格序列。變量:BoolCon1(False):布爾變量,用于判斷條件。BoolPreCon(False):布爾變量,用于最終條件判斷。NumericCounter(0):計(jì)數(shù)器變量,用于遍歷價(jià)格序列。邏輯:如果Price1>Price2,則開(kāi)始遍歷,檢查Price1是否持續(xù)等于Price2直到不再滿足或達(dá)到當(dāng)前K線索引。最終,如果Price1在某個(gè)位置小于Price2,則返回True,否則返回False。2.CrossUnder函數(shù)與CrossOver函數(shù)類似,但用于判斷價(jià)格序列Price1是否在某一點(diǎn)下穿過(guò)價(jià)格序列Price2(即價(jià)格1從上方穿越價(jià)格2)。邏輯:修改CrossOver函數(shù)中的條件,將Price1>Price2改為Price1<Price2,并相應(yīng)地調(diào)整最后返回的條件。3.調(diào)用KD指標(biāo)做信號(hào)利用KD指標(biāo)(隨機(jī)指標(biāo))進(jìn)行交易決策。參數(shù):NumericLength(14):主要時(shí)間周期,用于計(jì)算最高和最低值。NumericSlowLength(3):平滑計(jì)算的短期周期。NumericSmoothLength(3):D值的平滑周期。變量:存儲(chǔ)最高價(jià)、最低價(jià)、K值、D值等。邏輯:計(jì)算過(guò)去Length周期內(nèi)的最高價(jià)和最低價(jià)。根據(jù)最高價(jià)、最低價(jià)和收盤價(jià)計(jì)算K值和D值。使用CrossOver和CrossUnder函數(shù)判斷K值和D值的交叉情況。根據(jù)市場(chǎng)位置和K、D值的相對(duì)位置執(zhí)行買入或賣出操作。另一版本KD指標(biāo)邏輯此版本簡(jiǎn)化了交易決策的邏輯,直接在K值和D值的條件下執(zhí)行買入或賣出。邏輯:計(jì)算KD值。檢查市場(chǎng)位置和K、D值的相對(duì)位置,直接執(zhí)行買入或賣出操作,無(wú)需通過(guò)額外的CrossOver或CrossUnder函數(shù)。函數(shù)CrossOver代碼:ParamsNumericSeriesPrice1(1);//聲明數(shù)值序列參數(shù)Price1,初始值為1.NumericSeriesPrice2(1);//聲明數(shù)值序列參數(shù)Price2,初始值為1.VarsBoolCon1(False);//聲明布爾型變量Con1,初始判斷為假。BoolPreCon(False);//聲明布爾型變量PreCon,初始判斷為假。NumericCounter(0);//聲明數(shù)值變量Counter,初值為0.BeginIf(Price1>Price2)//假如價(jià)格Price1大于Price2{Counter=1;//變量Counter值等于1.//Con1=Price1[1]==Price2[1];//前一價(jià)格Price1等于前一價(jià)格Price2,把這兩價(jià)格賦值給布爾型變量Con1While(Con1andCounter<CurrentBar)//這也是一個(gè)循環(huán)語(yǔ)句,當(dāng)布爾型變量Con1為真,并且Counter值小于當(dāng)前k線索引值。{Counter=Counter+1;//變量Counter=前一個(gè)Counter值+1Con1=Price1[Counter]==Price2[Counter];//布爾型變量Con1值隨著變量Counter值變化了,即Counter值月大,k線的價(jià)格往回倒騰數(shù)位越多。}PreCon=Price1[Counter]<Price2[Counter];//當(dāng)k線返回索引價(jià)格Price2大于價(jià)格Price1時(shí),把數(shù)值賦值給布爾型變量PreCon。這些運(yùn)算符的先后順序,跟數(shù)學(xué)運(yùn)算符差不多,一般都是先乘除后加減(*/+-),次判斷大小(<>),最后才是賦值(=)ReturnPreCon;//把布爾型變量值PreCon返回給主函數(shù)。}Else//就是假如價(jià)格Price1小于或等于Price2時(shí)。{ReturnFalse;//返回給主函數(shù)是一個(gè)錯(cuò)誤值,也就是沒(méi)有值反饋回去了。}End同一根k線上,依據(jù)不同算法當(dāng)價(jià)格1大于價(jià)格2了,比如均線10與均線120,在同一根k線上,體現(xiàn)出來(lái)是不一樣的,所以才有了這上穿和下跌。函數(shù)CrossUnder條件改一下,價(jià)格Price1小于Price2時(shí),代碼如下:ParamsNumericSeriesPrice1(1);NumericSeriesPrice2(1);VarsBoolCon1(False);BoolPreCon(False);NumericCounter(0);BeginIf(Price1<Price2){Counter=1;Con1=Price1[1]==Price2[1];While(Con1andCounter<CurrentBar){Counter=Counter+1;Con1=Price1[Counter]==Price2[Counter];}PreCon=Price1[Counter]>Price2[Counter];ReturnPreCon;}Else{ReturnFalse;}End調(diào)用KD指標(biāo)做信號(hào):ParamsNumericLength(14);NumericSlowLength(3);NumericSmoothLength(3);VarsNumericSeriesHighestValue;NumericSeriesLowestValue;NumericSeriesKValue;NumericSumHLValue;NumericSumCLValue;NumericSeriesDValue;Boolcondition1;Boolcondition2;BeginHighestValue=HighestFC(High,Length);LowestValue=LowestFC(Low,Length);SumHLValue=SummationFC(HighestValue-LowestValue,SlowLength);SumCLValue=SummationFC(Close-LowestValue,SlowLength);If(SumHLValue<>0){KValue=SumCLValue/SumHLValue*100;}Else{KValue=0;}DValue=AverageFC(KValue,SmoothLength);If(!CallAuctionFilter())Return;condition1=CrossOver(KValue[1],DValue[1]);condition2=CrossUnder(KValue[1],DValue[1]);If(MarketPosition<>1Andcondition1){Buy(1,Open);}If(MarketPosition<>-1Andcondition2){SellShort(1,Open);}End信號(hào)代碼解釋:1.參數(shù)(Params):*`Length(14)`:主要時(shí)間周期,通常用于計(jì)算最高和最低值。 *`SlowLength(3)`:用于平滑計(jì)算的短期周期。 *`SmoothLength(3)`:用于計(jì)算D值的平滑周期。2.變量(Vars):*`HighestValue`和`LowestValue`:存儲(chǔ)過(guò)去`Length`周期內(nèi)的最高和最低價(jià)格。 *`KValue`:隨機(jī)指標(biāo)的K線。 *`SumHLValue`和`SumCLValue`:輔助計(jì)算K值的總和。 *`DValue`:隨機(jī)指標(biāo)的D線,它是K值的移動(dòng)平均。 *`condition1`和`condition2`:用于交易決策的條件。3.計(jì)算:*`HighestValue`和`LowestValue`分別使用`HighestFC`和`LowestFC`函數(shù)計(jì)算過(guò)去`Length`周期的最高和最低價(jià)格。 *`SumHLValue`是`HighestValue`和`LowestValue`之差的`SlowLength`周期和。 *`SumCLValue`是收盤價(jià)與`LowestValue`之差的`SlowLength`周期和。 *如果`SumHLValue`不為0,則計(jì)算`KValue`(否則,`KValue`為0)。 *`DValue`是`KValue`的`SmoothLength`周期移動(dòng)平均。4.交易決策:*如果`CallAuctionFilter()`返回非真值(即不滿足某些條件),則不執(zhí)行后續(xù)操作。 *`condition1`檢查K值是否上穿D值(即`KValue[1]`在上一周期低于`DValue[1]`,但在當(dāng)前周期高于它)。 *`condition2`檢查K值是否下穿D值(即`KValue[1]`在上一周期高于`DValue[1]`,但在當(dāng)前周期低于它)。 *如果當(dāng)前市場(chǎng)位置不是多頭(即沒(méi)有持倉(cāng)或多頭持倉(cāng)已平),并且滿足`condition1`,則買入。 *如果當(dāng)前市場(chǎng)位置不是空頭(即沒(méi)有持倉(cāng)或空頭持倉(cāng)已平),并且滿足`condition2`,則賣出空頭。另一版本代碼:ParamsNumericLength(14);NumericSlowLength(3);NumericSmoothLength(3);VarsNumericSeriesHighestValue;NumericSeriesLowestValue;NumericSeriesKValue;NumericSumHLValue;NumericSumCLValue;NumericSeriesDValue;BeginHighestValue=HighestFC(High,Length);LowestValue=LowestFC(Low,Length);SumHLValue=SummationFC(HighestValue-LowestValue,SlowLength);SumCLValue=SummationFC(Close-LowestValue,SlowLength);If(SumHLValue<>0){KValue=SumCLValue/SumHLValue*100;}Else{KValue=0;}DValue=AverageFC(KValue,SmoothLength);If(!CallAuctionFilter())Return;If(MarketPosition<>1AndKValue[1]>DValue[1]){Buy(1,Open);}If(MarketPosition<>-1AndKValue[1]<DValue[1]){SellShort(1,Open);}End使用了移動(dòng)平均線(函數(shù),如`HighestFC`、`LowestFC`、`SummationFC`和`AverageFC`)以及兩個(gè)主要指標(biāo):K值和D值(類似于隨機(jī)指標(biāo)StochasticOscillator)。以下是代碼的詳細(xì)解釋:1.參數(shù)(Params) *`Length(14)`:用來(lái)計(jì)算最高價(jià)和最低價(jià)的周期長(zhǎng)度。 *`SlowLength(3)`:用來(lái)計(jì)算`SumHLValue`和`SumCLValue`的周期長(zhǎng)度。 *`SmoothLength(3)`:用來(lái)平滑K值以得到D值的周期長(zhǎng)度。2.變量(Vars)*`HighestValue`:保存`Length`周期內(nèi)的最高價(jià)。 *`LowestValue`:保存`Length`周期內(nèi)的最低價(jià)。 *`KValue`:存儲(chǔ)K值,即隨機(jī)指標(biāo)的K線。 *`SumHLValue`:存儲(chǔ)最高價(jià)與最低價(jià)之差的累積和(在`SlowLength`周期內(nèi))。 *`SumCLValue`:存儲(chǔ)收盤價(jià)與最低價(jià)之差的累積和(在`SlowLength`周期內(nèi))。 *`DValue`:存儲(chǔ)D值,即K值的移動(dòng)平均。3.交易邏輯:*首先,計(jì)算`Length`周期內(nèi)的最高價(jià)和最低價(jià),分別存儲(chǔ)在`HighestValue`和`LowestValue`中。 *接著,計(jì)算`SlowLength`周期內(nèi)`HighestValue`與`LowestValue`之差的累積和(`SumHLValue`),以及收盤價(jià)與`LowestValue`之差的累積和(`SumCLValue`)。 *如果`SumHLValue`不為0,則計(jì)算K值(`KValue`),它是`SumCLValue`除以`SumHLValue`再乘以100的結(jié)果。如果`SumHLValue`為0(即最高價(jià)和最低價(jià)相同),則K值設(shè)為0。 *然后,計(jì)算D值(`DValue`),它是K值的`SmoothLength`周期內(nèi)的移

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論