開拓者一個(gè)簡單順勢交易系統(tǒng)策略源碼
作者:開拓者 TB 來源:cxh99.com 發(fā)布時(shí)間:2013年03月21日
- 該交易系統(tǒng)的建倉條件為:
1、前兩個(gè)Bar收陽,并呈上漲趨勢;
2、當(dāng)前價(jià)格為最近前2個(gè)Bar最高價(jià)的回落,而且回落幅度大于0.382。回落幅度是相對(duì)于最高價(jià)到最低價(jià)的范圍。//程序化交易 www.weiqiv.net.cn
該交易系統(tǒng)的平倉條件為:
1、當(dāng)前價(jià)格的獲利價(jià)格點(diǎn)數(shù)大于建倉時(shí)最低價(jià)到最低價(jià)的范圍。
該交易系統(tǒng)的止損條件為:
1、當(dāng)前價(jià)格從建倉時(shí)的最高價(jià)格的回落大于最低價(jià)到最高價(jià)的范圍的0.5。
- 源碼:
-
- Params
- Numeric TrailingSet(0.382); // 回撤開倉比例設(shè)置,從最高點(diǎn)下跌的比例
- Numeric StopLossSet(0.5); // 止損比例設(shè)置
- Vars
- Bool startCondition(False); // 啟動(dòng)條件
- Bool EntryCondition(False); // 開倉條件
- Bool ExitCondition(False); // 平倉條件
- NumericSeries highestValue(0); // 前2個(gè)周期的最高價(jià)
- NumericSeries lowestValue(0); // 前2個(gè)周期的最低價(jià)
- Numeric myEntryPrice(0); // 開倉價(jià)格
- Numeric myExitPrice(0); // 平倉價(jià)格
- Begin
- highestValue = highestValue[1];
- lowestValue = lowestValue[1];//程序化交易 www.weiqiv.net.cn
- If(MarketPosition ==0 ) // 當(dāng)前空倉
- {
- If(Close[2]>Open[2] && Close[1] > Open[1] && Close[1] > Close[2])
- {
- startCondition = True;
- highestValue = max(high[2],high[1]);
- lowestValue = min(low[2],low[1]);
- }
-
- If(startCondition)
- {
- EntryCondition = ((highestValue - Open) / (highestValue - lowestValue) > TrailingSet )&& // 開盤價(jià)即滿足回撤條件,用開盤價(jià)進(jìn)行交易
- (Open > highestValue -((highestValue - lowestValue)*StopLossSet)) ; // 開盤價(jià)不能低于預(yù)設(shè)的止損價(jià)
- If( EntryCondition)
- {
- Buy(1,Open);
- }Else // 再看其它價(jià)格是否滿足
- {
- EntryCondition = (highestValue - Low) / (highestValue - lowestValue) > TrailingSet ; // 最低價(jià)滿足回撤條件,用低于TrailingSet設(shè)置的最近價(jià)位建倉
- If(EntryCondition)
- {
- myEntryPrice = highestValue - (HighestValue - LowestValue ) * TrailingSet;
- myEntryPrice = IntPart(myEntryPrice / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 對(duì)價(jià)格進(jìn)行處理
- If(myEntryPrice >= low && myEntryPrice <= High)
- {
- Buy(1,MyEntryPrice);
- }
- }
- }
- }
- }else If(MarketPosition == 1) // 當(dāng)前多倉
- {
- ExitCondition = ( HighestValue - Low )/(highestValue - lowestValue) > StopLossSet; // 止損條件滿足
- If(ExitCondition)
- {
- myExitPrice = highestValue - (HighestValue - LowestValue ) * StopLossSet;
- myExitPrice = IntPart(myExitPrice / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 對(duì)價(jià)格進(jìn)行處理
- Sell(CurrentContracts(),myExitPrice);
- }Else // 獲利平倉
- {
- ExitCondition = (high - AvgEntryPrice()) > (highestValue - lowestValue); // 獲利平倉條件滿足
- If(ExitCondition)
- {
- myExitPrice = AvgEntryPrice() + (HighestValue - LowestValue );
- myExitPrice = IntPart(myExitPrice / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 對(duì)價(jià)格進(jìn)行處理
- If (myExitPrice >= low && myEntryPrice <= high)
- {
- Sell(CurrentContracts(),myExitPrice);
- }Else
- {
- Sell(CurrentContracts(),Close);
- }
- }
- }
- }
- End