プログラム化取引に最初に接触する多くの人々は,パラメータを選択するためにパラメータ最適化方法を選択します. 徐々に取引環境が変化するにつれて,トレーダーはしばしば自主的にパラメータを常に調整するようになります. すべてのパラメータは常に調整する必要はありませんが,環境が変化するにつれて私たちのプログラム内のパラメータを調整する場合は,この方法はプログラムをより柔軟にすることができます.
では,どの市場では,このような順位突破戦略がより簡単に儲かるのでしょうか?それは,明らかにトレンドを大きく突破した部分,またはほとんどの市場が,より簡単に儲かるということです.しかし,もし私たちが一斉に順位突破の動きに出くわしたとしても,どれだけの空信号が繰り返されるのかという問題は,発生する可能性があります.しかし,順位突破戦略の問題だけでなく,すべての順位突破戦略の死穴であることは,誰もが知っています.NはN天区間突破戦略の問題の鍵です.
プログラム化取引では,このNがどのような問題になるのでしょうか? Nを5に設定して,今傾向がはっきりしている場合,より早く入場します. しかし,傾向がはっきりしていない場合,突然,非常に面倒です. だから,傾向がはっきりしているとき,Nを少し小さくすることができます.
まず,トレンドは非常に顕著なものがNの大きさを決定するかどうかである.もしトレンドが顕著であるならば,指数が変動する比率が大きいことを示唆する.逆に,トレンドが整数である場合,指数が特定の区間内に整理されることを示唆する,つまり波動が比較的小さいことを示唆する.したがって,波動はNの大きさを決定する鍵である.
初期にNを20に設定すると,20のK棒の標準差を計算できます. ここでこれをV20と呼びます. 短時間で測定したい場合は,10のK棒で10のK棒の標準差を計算して,V10とします.
今日の高値が過去N日の高値を突破したときに購入すると仮定し,今日の低値が過去N日の低値に突破したときに売却します. この戦略は,傾向が顕著な商品,特に片側商品に対してより有効である.
商品株指数IFをテストする際,以下の2つのグラフを用いて,サブグラフ1周期は1時間,サブグラフ2周期は1日である.
inputs: x(20),y(10) ;
//定义波动率参数
Vars: V20(10),V10(10),N2(10),N1(10),N(10);
//定义变量
V20=Volatility(x)of data2;
V10=Volatility(y)of data2;
//定义波动率取日线数据,取子图2的日线线数。这个Volatility函数是分别取20日跟10日ATR的移动平均数值
if V10<>0 and N2<>0 then begin
N1=(N*V20)/V10;
//定义N1的值,前提让分母不为0时执行,
//这N1=(N*V20)/V10是此参数自动化的核心, 代表你将原本固定N天的参考值改成会/根据V20和V10而变动的N1值, V20是较长期的,而V10是近期,大家看到这个公式应该可以发现,当你近期的波动率变大时,表示趋势出现,你的N1就会变小,而近期的波动率变得越小时,表示在盘整,N1就会变大,这样新的N变化似乎比较合理一点。
N2=IntPortion(N1);
//给N1取整赋值给N2
end;
value1=Average(high of data2,N2)of data2;
value2=Average(low of data2,N2)of data2;
//定义前N2天的高点跟低点的值给value1和value2
if close crosses above value1 then begin
buy next bar at market;
end;
//当价格上穿高点时买入或者反向
if close crosses below value2 then begin
sellshort next bar at market;
end;
//当价格下穿低点时开空或者反向
戦略パラメータの自動化についてお話しします. ぜひ,私たちと一緒に学び,議論してください.
ルーライN1= ((N*V20) /V10;Nがどのように定義されているか