自動売買するならスキャルピングでやってみたいと考える人はそれなりにいるかと思います。
今回は板の売気配・買気配をチャート上に描いてみます。
売気配・買気配は別の関数にして、インジケーターで描写します。
売気配・買気配
関数
REALTIME_BID
variables: intrabarpersist bool RealTime( false ) ; once ( GetAppInfo( aiRealTimeCalc ) = 1 ) begin RealTime = true ; end ; if RealTime then { real-time tick - not on bar in history } REALTIME_BID = InsideBid else REALTIME_BID = -1 ;
REALTIME_ASK
variables: intrabarpersist bool RealTime( false ) ; once ( GetAppInfo( aiRealTimeCalc ) = 1 ) begin RealTime = true ; end ; if RealTime then { real-time tick - not on bar in history } REALTIME_ASK = InsideAsk else REALTIME_ASK = -1 ;
インジケーター
vars: BidValue(0), AskValue(0); BidValue = REALTIME_BID; AskValue = REALTIME_ASK; IF BidValue = -1 then NOPLOT(1) ELSE Plot1(BidValue, !("買い気配"), Red, Default, 1); If AskValue = -1 then NOPLOT(2) ELSE Plot2(AskValue, !("売り気配"), Blue, Default, 1);
1ティックチャート上に描写します。
赤が買気配、青が売気配、灰色が売買された株価(終値)、緑が移動平均(5)、オレンジが移動平均(25)です
見ての通り、1ティックだと線がジグザグするのでストラテジーを組むうえで結構使い辛いかと思います。
なので買気配と売気配を合計して2で割ったものを一定期間で平均化します。
気配の平均化
関数
ITA_AVG
inputs: AvgProp(NumericSimple); variables: intrabarpersist bool RealTime(false), double Avg(5), int BarCount(0), double TempProp(1); once ( GetAppInfo( aiRealTimeCalc ) = 1 ) begin RealTime = true ; end; if RealTime then BEGIN Avg = (InsideBid + InsideAsk) / 2; BarCount += 1; IF BarCount < AvgProp then TempProp = BarCount ELSE TempProp = AvgProp; ITA_AVG = Average(Avg, TempProp); END else BEGIN ITA_AVG = -1; END;
インジケーター
inputs: AvgColor(Yellow), UpColor(Red), DownColor(Blue), AvgProp(5); vars: Answer(0); Answer = ITA_AVG(AvgProp); IF Answer = -1 then BEGIN NOPLOT(1); END ELSE BEGIN IF Answer < Answer[1] then Plot1(Answer, !( "板平均" ), DownColor, Default, 1) ELSE if Answer > Answer[1] then Plot1(Answer, !( "板平均" ), UpColor, Default, 1) ELSE Plot1(Answer, !( "板平均" ), AvgColor, Default, 1); end;
順に5本、25本、50本、灰色が売買された株価(終値)、緑が移動平均(5)、オレンジが移動平均(50)です。
移動平均より上下の動きが緩やかになります。
ただ、50本まで行くと移動平均と大差ない線になりますね。
次回はこの関数を使ってストラテジーを組んでみます。