*** สอบถามเรื่อง tfex backtest โดยใช้ amibroker เกี่ยวกับการใช้ Leverage รบกวนด้วยคับ ใครเก่งขอเชิญเลยคับ(ต่อภาค 2 คับ)

คือ ผมต้องการทำ backtest ของ set50index future คับ ที่นี้ก้อได้ตั้งค่าต่างๆ set ค่าต่างๆจนคิดว่าถูกต้องแล้ว แต่ผล test ที่ได้มัน ไม่ Match กับความเป็นจริงพอไปเช็คดู  ......คือระบบ วางไว้ประมานนี้คับ
1. เงินต้น 1,000,000
2. positionsize ในการวางเงินทุกรอบคือ 100% (วางเงินหมดหน้าตัก)
3. Multiplier =200 (ตัวคูณดัชนี)
4.ใช้ levaerage คงที่เป็น % ของมูลค่าใน 1 สัญญา (ในที่นี้ใช้ 30% ของมูลค่าใน 1 สัญญาเพื่อวางหลักประกันใน 1 สัญญา ...ทำแบบนี้ทุกครั้งที่เปิดสถานะ)
5.ระบบ จะคำนวณ มาว่า ถ้าวางเงินหมดหน้าตัก 100% ที่ leverage 30% จะเปิดสถานะได้กี่สัญญา
  พอรัน backtest ผลลัพธ์มันไม่ถูกต้อง โปรแกรมมันให้ผลลัพธ์ของจำนวนสัญญา(Contract) ไม่ตรงกับความเป็นจริง ทั้งๆที่ผมก้อตั้งค่า Margindeposit ให้เป็น 30% มูลค่าสัญญา ณ เวลานั้นๆที่จะเปิดสถานะ
                .... สูตรตามด้านล่างคับ

// General setting
    SetOption("InitialEquity", 1000000 );
    SetOption("CommissionMode",3);
    SetOption("CommissionAmount",85);
    SetOption("Futuresmode",True);
    
    SetPositionSize(100,spsPercentOfEquity);

    TickSize = 0.1;
    PointValue = 200;
    RoundLotSize = 1;
      
// Buy and Sell

    SetTradeDelays(0,0,0,0);
    
    BuyPrice = Close;
    SellPrice = Close;
    ShortPrice =Close;
    CoverPrice = Close;
    
    //-----------------------------
        
    Buyperfectcon = MACD(3,14)>0;
    Totalbuycon = Buyperfectcon  AND RSI()>55 ;
        
    // -----------------------------------------------------
    
    Sellperfectcon = MACD(3,14)<Signal(3,14,9) OR MACD(3,14)<0;
    Totalsellcon = Sellperfectcon and RSI()<50;  
    
    // --------------------------------
    
    Shortperfectcon = MACD(3,14)<0 ;
    Totalshortcon = Shortperfectcon AND RSI()<55;
        
    //---------------------------------
  
    Coverperfectcon = MACD(3,14)>Signal(3,14,9) OR MACD(3,14)>0;
    Totalcovercon = Coverperfectcon and RSI()>50;
    
Entry1 = Totalbuycon OR Totalshortcon;             // assign Entry condition(Open Long or Open Short)
CloseatXXX = ValueWhen(Entry1,Close,1);          // get value of Close price to  Closeatxxx under condition Entry1
MarginDeposit_for_1_contract = Closeatxxx*200*0.3;           // assign margin deposit on Leverage = 30% per 1 contract
                                                    
MarginDeposit = MarginDeposit_for_1_contract;                   // assign margin deposit on Leverage = 30% per 1 contract

Buy = Totalbuycon;
Sell = Totalsellcon;

buy = ExRem( buy, sell );
sell = ExRem( sell, buy );
    
Short = Totalshortcon;  
Cover = Totalcovercon;

Short = ExRem( Short, Cover );
Cover = ExRem( Cover, Short );

PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-20);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-30);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-25);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=20);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=30);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-25);
PlotShapes(IIf(Short, shapeHollowDownArrow, shapeNone), colorYellow, 0, H, -55);
PlotShapes(IIf(Cover, shapeHollowUpArrow, shapeNone), colorSkyblue, 0, L, -55);

//Applystop
     // ApplyStop(stopTypeLoss,stopModePercent,2);
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่