COCO研究院

 找回密碼
 註冊
搜索
查看: 1593|回復: 1

想請教先進二種寫法意義相同但結果不同釋疑

[複製鏈接]
發表於 14-4-25 22:10 | 顯示全部樓層 |閱讀模式
本帖最後由 skyler 於 14-4-25 22:14 編輯

想法:
前一根K棒判斷,符合條件,本根K棒開盤下單
Buy : K棒 MA5 均線向上 且K棒向上穿過MA5
Sell : MA5均線向下
Short : MA5 均線向下 且K棒向下穿過MA5
Cover : MA5均線向下

測試標的: 6A #F 1小時線

實作二個 afl1. TestMA5_1.afl
在迴圈前先將判斷式寫好
程式碼如下 :

_SECTION_BEGIN( "Product Settings" );
SetPositionSize( 1 , spsShares );
SetOption( "MaxOpenPositions" , 1 );
SetOption( "InitialEquity" , 10000 );
SetOption( "FuturesMode" , 1 );
SetOption( "CommissionMode" , 3 );
SetOption( "CommissionAmount" , 6.5 );
RoundLotSize = 1;

if ( Name () == "6A #F" )
{
    TickSize = 0.0001 ;
    MarginDeposit = 2035 ;
    PS = 10000;
    PointValue = 10 * PS;
}

_SECTION_END();

MA5_P1 = Ref( MA( C, 5 ), -1 );     //前一根的 MA5
MA5_P2 = Ref( MA( C, 5 ), -2 );     //前二根的 MA5

Cond_MA5_Buy = MA5_P1 > MA5_P2;  //前一根的MA5 > 前二根的MA5 表示 MA5在前一根是向上
Cond_MA5_Sell = MA5_P1 < MA5_P2;  //前一根的MA5 < 前二根的MA5 表示 MA5在前一根是向下

Cross5_Buy =  Cross ( Ref( C, -1 ), MA5_P1 );    //前一根K棒向上穿過MA5
Cross5_Sell = Cross ( MA5_P1, Ref( C, -1 ) );     //前一根K棒向下穿過MA5

BuyIndex = 0;    //判斷是否有多單
ShortIndex = 0;    //判斷是否有空單

for ( i = 0 ; i < BarCount ; i++ )
{
    //Buy
    if ( BuyIndex == 0 )
    {
        if ( Cond_MA5_Buy AND Cross5_Buy )
        {
            BuyIndex = i;
            Buy = 1;
            BuyPrice  = O ;
        }
    }

    //Sell
    if ( BuyIndex != 0 )
    {
        if ( Cond_MA5_Sell  )
        {
            BuyIndex = 0;
            Sell = 1;
            SellPrice = O ;
        }
    }

    //Short
    if ( ShortIndex  == 0 )
    {
        if ( Cond_MA5_Sell AND Cross5_Sell )
        {
            ShortIndex = i;
            Short = 1;
            ShortPrice = O ;
        }
    }

    //Cover
    if ( ShortIndex != 0 )
    {
        if ( Cond_MA5_Buy )
        {
            ShortIndex = 0;
            Cover = 1;
            CoverPrice = O ;
        }
    }
}

2. TestMA5_2.afl
在迴圈內逐一判斷
程式碼如下 :

_SECTION_BEGIN( "Product Settings" );
SetPositionSize( 1 , spsShares );
SetOption( "MaxOpenPositions" , 1 );
SetOption( "InitialEquity" , 10000 );
SetOption( "FuturesMode" , 1 );
SetOption( "CommissionMode" , 3 );
SetOption( "CommissionAmount" , 6.5 );
RoundLotSize = 1;

if ( Name () == "6A #F" )
{
    TickSize = 0.0001 ;
    MarginDeposit = 2035 ;
    PS = 10000;
    PointValue = 10 * PS;
}

_SECTION_END();

MA5 = MA( C, 5 );  //MA5

Cross5_Buy =  Cross ( C, MA5 );    //K棒向上穿過MA5
Cross5_Sell = Cross ( MA5, C );     // K棒向下穿過MA5

BuyIndex = 0;    //判斷是否有多單
ShortIndex = 0;    //判斷是否有空單

for ( i = 2 ; i < BarCount ; i++ )
{
    //Buy
    if ( BuyIndex == 0 )
    {
        if ( MA5 [i-1] > MA5[i-2] AND Cross5_Buy[i - 1] )  //前一根MA5 > 前二根MA5  且
        {                                                                        // 前一根K棒向上穿過MA5   
            BuyIndex = i;
            Buy = 1;
            BuyPrice  = O ;
        }
    }

    //Sell
    if ( BuyIndex != 0 )
    {
        if ( MA5 [i-1] < MA5[i-2] )                        //前一根MA5 < 前二根MA5
        {
            BuyIndex = 0;
            Sell = 1;
            SellPrice = O ;
        }
    }

    //Short
    if ( ShortIndex  == 0 )
    {
        if ( MA5 [i-1] < MA5[i-2]  AND Cross5_Sell[i-1] )        //前一根MA5 < 前二根MA5  且
        {                                                                             // 前一根K棒向下穿過MA5   
            ShortIndex = i;
            Short = 1;
            ShortPrice = O ;
        }
    }

    //Cover
    if ( ShortIndex != 0 )
    {
        if ( MA5 [i-1] > MA5[i-2] )                                      //前一根MA5 > 前二根MA5
        {
            ShortIndex = 0;
            Cover = 1;
            CoverPrice = O ;
        }
    }
}



二者跑出來的結果不同
所以想請教一下先進自己的盲點在那  
感謝~  (鞠躬)









2014-04-25_220348.png
2014-04-25_213456.png

程式.zip

1.3 KB, 下載次數: 241

 樓主| 發表於 14-4-26 13:08 | 顯示全部樓層
補上 6A #F  的歷史資料

6A #F.zip

4.46 MB, 下載次數: 165

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-23 10:41

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |