/********************************************************************/ /* 名前: */ /* ドライバー:移動平均線 */ /* 説明:日足チャートからショート OR ロング戦略の適用切り替えに対応 */ /* 履歴:Ver1.00 Trade Stationデフォルト装備の */ /* Moving Average Simple Cross Short Entryの期間を */ /* 変更して、初代ショート戦略完成。 */ /* Ver2.00 フルモデルチェンジ */ /* 2週間の検証期間の後、だましを減らすために、 */ /* 長期移動平均を追加。両方のシグナルが出たら仕掛け*/ /* Ver3.00 1.日足レベルのトレンドを考慮。 */ /* 2.コメントの表記変更 */ /* Ver4.00 曜日をフィルターに適用 */ /********************************************************************/ /********************************************************************/ /* 変数宣言 */ /********************************************************************/ /*初期設定用変数宣言*/ var:ChkClose(1),ChkCloseOld(0),Shikakeflag(0); /*SAR変数宣言*/ var:SARd(0),EP(0),AF(0.02); var:Longflag(0),Shortflag(0),FstSARflag(0); /*MASC用変数宣言*/ Inputs: Length(2), ConsecLength(2); var:MAS_Short_flag(0); /********************************************************************/ /* プログラム */ /********************************************************************/ /* これをセットすることで1日1回のトレードにできる。毎日リセットしたいもの */ /*----------------------------*/ /* ↓ここから毎日の初期設定↓ */ /*----------------------------*/ ChkClose = DayClose(1); if ChkClose <> ChkCloseOld then{ Shikakeflag = 0; MAS_Short_flag = 0; FstSARflag = 0; Longflag = 0; Shortflag = 0; } /*----------------------------*/ /* ↑ここまで毎日の初期設定↑ */ /*----------------------------*/ /********************************************************************/ /* 仕掛けモジュール */ /********************************************************************/ /*------------------------------------------------------------------*/ /* 日足チャートからショート OR ロングの選択 */ /*------------------------------------------------------------------*/ if CurrentWeek(Date) == 1 then { /* 月曜日なら仕掛ける */ if sTime > 123000 AND sTime < 140000 then { if CountIF(Close < MA(Close, Length), ConsecLength) == ConsecLength then { MAS_Short_flag = 1; } } } if Shikakeflag <> 1 then { if MAS_Short_flag == 1 then { Sell("MAS"); Shortflag = 1; Shikakeflag = 1; } } /********************************************************************/ /* 手仕舞いモジュール */ /********************************************************************/ /*------------------------------------------------------------------*/ /* パラボリックSAR */ /*------------------------------------------------------------------*/ /*ロングポジションの手仕舞い*/ if CurrentEntries <> 0 AND Longflag <> 0 then { /*ポジションがあるときのみ実行。これけっこう重要!!*/ if FstSARflag == 0 then Begin /*初回?*/ SARd = EntryPrice(0) - 40; /*損切りは買値から\-40*/ EP = EntryPrice(0); AF = 0.02; FstSARflag = 1; End Else begin /*2回目以降*/ if EP < High then { EP = High; AF = AF + 0.014; if AF > 0.2 then{ AF = 0.2; } } SARd = SARd + AF * (EP - SARd); End ExitLong("SAR_ExLong",AtStop,SARd); } /*ショートポジションの手仕舞い*/ if CurrentEntries <> 0 AND Shortflag <> 0 then { /*ポジションがあるときのみ実行。これけっこう重要!!*/ if FstSARflag == 0 then Begin /*初回?*/ SARd = EntryPrice(0) + 40; /*損切りは買値から\-40*/ EP = EntryPrice(0); AF = 0.02; FstSARflag = 1; End Else begin /*2回目以降*/ if EP > Low then { EP = Low; AF = AF + 0.014; if AF > 0.2 then{ AF = 0.2; } } SARd = SARd + AF * (EP - SARd); End ExitShort("SAR_ExShort",AtStop,SARd); } ChkCloseOld = ChkClose;