SpreadK中Numeric SW(1);SW的用法和注解是什么?
作者:開拓者 TB 來源:cxh99.com 發布時間:2016年02月23日
- 咨詢內容:
//------------------------------------------------------------------------
// 簡稱: SpreadK
// 名稱: 價差/比值K線
// 類別: 公式應用
// 類型: 內建應用
//------------------------------------------------------------------------
Params
Numeric D0(1); // Data0計算價差時的比例
Numeric D1(1); // Data1計算價差時的比例
Numeric SW(1); // 0為價差、1為比值
Numeric Length(60); // 計算均線的參數
Numeric Factor(10000); // 放大系數
Vars
Numeric OpenPrice;
Numeric ClosePrice;
Begin
If(Data1.Close == InvalidNumeric) Return;
If(SW == 0)
{
OpenPrice = Data0.Open*D0 - Data1.Open*D1;
ClosePrice = Data0.Close*D0 - Data1.Close*D1;
}Else If(SW == 1)
{
OpenPrice = Data0.Open/Data1.Open*Factor;
ClosePrice = Data0.Close/Data1.Close*Factor;
}
PlotNumeric("Open",OpenPrice);
PlotNumeric("High",Max(ClosePrice,OpenPrice));
PlotNumeric("Low",Min(ClosePrice,OpenPrice));
PlotNumeric("Close",ClosePrice);
PlotNumeric("MA",AverageFC(ClosePrice,Length));
End
//------------------------------------------------------------------------
- TB技術人員:
SW是一個參數,也就是可以不通過編譯就可以在外部通過參數的調整來控制計算結果的一個值。
在公式代碼中,可以看到。當SW為0時,執行的是價差的計算。當SW為1時,執行的是價比的計算 。
所以,這個公式在某一個情形下,想要得到價差的值還是價比的值 ,由交易者修改SW的參數而決定 。
- TB客服:
謝謝·~我看明白了·~如果SW=1.那么就調用 If(SW == 1)
{
OpenPrice = Data0.Open/Data1.Open*Factor;
ClosePrice = Data0.Close/Data1.Close*Factor;
如果SW=0.那么就調用(SW == 0)
{
OpenPrice = Data0.Open*D0 - Data1.Open*D1;
ClosePrice = Data0.Close*D0 - Data1.Close*D1;