【実装】デイトレRSI
http://ameblo.jp/traderssystem/entry-10104412520.html
----------------------------------------------------
Input : period(9), RSI_High_Point(85), RSI_Low_Point(15);
If sTime > 094500 and sTime < 144000 Then {
If RSI(period) > RSI_High_Point Then {
Buy("DT0601新規買", AtMarket);
}
If RSI(period) < RSI_Low_Point Then {
Sell("DT0601新規売", AtMarket);
}
}
SetStopEndofday(150500);
----------------------------------------------------
時間指定をしている以外はRSI()関数の単純なロジックです。
購入予定
最近買おうとしている本です
- マニャーナの法則 明日できることを今日やるな/マーク・フォースター
- ¥1,365
- Amazon.co.jp
- 先物・オプション取引入門/ジョン・C. ハル
- ¥4,830
- Amazon.co.jp
- Mind パフォーマンス Hacks ―脳と心のユーザーマニュアル―/Ron Hale-Evans
- ¥2,940
- Amazon.co.jp
- 「超」効率HACKS!/原尻 淳一
- ¥1,000
- Amazon.co.jp
【実装】過去N日のブレイクアウト
http://ameblo.jp/traderssystem/entry-10104410904.html
--------------------------------------------------
Input : long_period(20), short_period(20);
Buy("SW2001新規買", AtStop, Highest(High, long_period));
Sell("SW2001新規売", AtStop, Lowest(Low, short_period));
--------------------------------------------------
シンプルな記述となっています。
ストップ注文で価格を過去N日の最高値・最安値にしているだけです。
【実装】買われすぎ移動平均システム
http://ameblo.jp/traderssystem/entry-10104975565.html
------------------------------------------------------------
Input : ma_period(3), low_short_period(4), low_long_period(13),
high_short_period(4), high_long_period(13), exit_period(13);
//本日終値が3日移動平均を上抜く かつ
//13日間安値を過去4日以内に記録したとき
If ((CrossUp(Close[0], Ma(Close, ma_period))) and
(Lowest(Low, low_short_period) == Lowest(Low, low_long_period))) then {
//翌日の寄り付きで買い
Buy("SW2101新規買", AtMarket);
}
//本日終値が3日移動平均を下抜く かつ
//13日間高値を過去4日以内に記録したとき
If ((CrossDown(Close[0], Ma(Close, ma_period))) and
(Highest(High, high_short_period) == Highest(High, high_long_period))) then {
//翌日の寄り付きで売り
Sell("SW2101新規売", AtMarket);
}
//本日高値が過去13日間高値で最も安いとき
If (High[0] == Lowest(High, exit_period)) Then {
//手仕舞い
ExitLong("SW2101買決済", OnClose);
}
//本日高値が過去13日間安値で最も高いとき
If (Low[0] == Highest(Low, exit_period)) Then {
//手仕舞い
ExitShort("SW2101売決済", OnClose);
}
------------------------------------------------------------
13日間安値を過去4日以内に記録したとき
というのをX日、Y日という変数にしています。
処理としては
X日間の最安値=Y日間の最安値
とすることで上記のアイデアを実現できます。
本日高値と過去Z日間高値の比較でも同様です。
【実装】3日目の逆張り
http://ameblo.jp/traderssystem/entry-10104346745.html
-----------------------------------------------------------------
Value1 = High - Low;
Value2 = Average(Value1[0] + Value1[1] + Value1[2], 3) / 2;
//終値が2日連続して前日の安値よりも安いとき
//今日の始値-過去3日間の平均レンジの2分の1に指値注文を置いて買う
If (C[0] < Low[1] and C[1] < Low[2]) Then {
Buy("SW2201新規買", AtLimit, Open[0] - Value2);
}
//終値が2日連続して前日の高値よりも高いとき
//今日の始値+過去3日間の平均レンジの2分の1に指値注文を置いて買う
If (C[0] > High[1] and C[1] < High[2]) Then {
Sell("SW2201新規売", AtLimit, Open[0] + Value2);
}
//ポジションを翌日まで保有した後、(At注文は翌日出される)
If (MarketPosition <> 0) Then {
//仕掛けた日の高値水準で手仕舞い
ExitLong("SW2201買決済_利確", AtLimit, High[0]);
//前日安値の1ティック下に損きり注文
ExitLong("SW2201買決済_損切り", AtStop, Low[0] - 10);
}
//ポジションを翌日まで保有した後、(At注文は翌日出される)
If (MarketPosition <> 0) Then {
//仕掛けた日の安値水準で手仕舞い
ExitShort("SW2201売決済_利確", AtLimit, Low[0]);
//前日高値の1ティック上に損きり注文
ExitShort("SW2201売決済_損切り", AtStop, High[0] + 10);
}
If (BarsSinceEntry(0) == 1) Then {
//上記2つの値段で決済しないときは大引けで手仕舞い
SetStopEndofday(151000);
}
-----------------------------------------------------------------
Range()関数を使えばもう少しすっきりしそうですが
やっていることは基本的な文法だけなので読み解けると思います。
BarsSinceEntry()関数は真新しいかもしれませんが、
ポジション新規以後、経過した足の数を返す関数で、マニュアルにも記載されています。
【実装】RSIによる穏やかな買われすぎ
http://ameblo.jp/traderssystem/entry-10104975166.html
---------------------------------------------------------------------
Input : RSI_Period(14), RSI_Low_Value(40), RSI_High_Value(60), RSI_Value_Period(5);
//14日RSIが40を上抜く かつ
//40より下にいた期間が5日以内のとき
If (CrossUp(RSI(RSI_Period), RSI_Low_Value) and
Value1 <= RSI_Value_Period) Then {
//翌日寄り付きで買い
Buy("SW2701新規買");
}
//14日RSIが60を下抜く かつ
//60より上にいた期間が5日以内のとき
If (CrossDown(RSI(RSI_Period), RSI_High_Value) and
Value2 <= RSI_Value_Period) Then {
//翌日寄り付きで買い
Sell("SW2701新規売");
}
If RSI(RSI_Period) <= RSI_Low_Value Then {
Value1 = Value1 + 1;
} Else {
Value1 = 0;
}
If RSI(RSI_Period) >= RSI_High_Value Then {
Value1 = Value1 + 1;
} Else {
Value1 = 0;
}
---------------------------------------------------------------------
RSI()関数による売買サインです。
RSI()関数については以前どこかで書いた記憶があるので今日は説明無しです。
【実装】5日順行後の逆張りトレード
http://ameblo.jp/traderssystem/entry-10104345836.html
---------------------------------------------------
//5日連続で下げ、6日目に上昇に転じたときは
If (Close[1] < Close[2] and
Close[2] < Close[3] and
Close[3] < Close[4] and
Close[4] < Close[5] and
Close[5] < Close[6] and
Close[0] > Close[1]) Then {
//翌日に買い、大引けで手仕舞い
Buy("YB0801新規買", AtMarket);
}
//5日連続で上げ、6日目に下落に転じたときは
If (Close[1] > Close[2] and
Close[2] > Close[3] and
Close[3] > Close[4] and
Close[4] > Close[5] and
Close[5] > Close[6] and
Close[0] < Close[1]) Then {
//翌日に買い、大引けで手仕舞い
Sell("YB0801新規売", AtMarket);
}
If MarketPosition == 1 Then {
ExitLong("YB0801買決済", OnClose);
}
If MarketPosition == -1 Then {
ExitShort("YB0801売決済", OnClose);
}
---------------------------------------------------
寄りで買って引けで売っています。
売買シグナルのYB0801・・・は開発コードです。
戦略の頭に付けています。
処理としては簡単だと思います。
また、いろいろな変化も試してみることができると思います
(日日を変えたり売り買いの向きを変えたり)
面白い結果が得られたらこっそり教えてくださいね。
【実装】移動平均交差を利用したモメンタム・オシレータ
http://ameblo.jp/traderssystem/entry-10104974879.html
----------------------------------------------
Input : cmo_period(10), ma_period(10);
Value1 = CMO(cmo_period);
Value2 = Ma(Value1, ma_period);
//本日10日CMOが10日単純移動平均を上抜くとき
If CrossUp(Value1, Value2) then {
//翌日の寄り付きで買い
Buy("SW2801新規買", AtMarket);
}
//本日10日CMOが10日単純移動平均を下抜くとき
If CrossDown(Value1,Value2) then {
//翌日の寄り付きで売り
Sell("SW2801新規売", AtMarket);
}
----------------------------------------------
CMO()関数を用いています
----------------------------------------------
/* Description : (C)handre (M)omentum (O)scillator
*
* Provided By : YesStock Inc. (c) Copyright 2006
* E-Mail : webmaster@yesstock.com
*/
Input : Length(Numeric);
CMO = 100 * (C-C[Length]) / (AccumN(Abs(C-C[1]), Length));
----------------------------------------------
CMO()関数の中身です。
アイデアに記した内容とちょっと異なっているようです。
100 × (本日終値-N日前終値) ÷ (本日終値-前日終値)の絶対値をN日間分加算
解説しているサイトをご存知でしたら紹介してほしいです。
よろしくお願いします。
【実装】株価指数の5分足トレード
http://ameblo.jp/traderssystem/entry-10104345097.html
---------------------------------------------------------
Value1 = DayLow(0) + ((DayHigh(0) - DayLow(0)) / 2);
//直近5分足の終値がその日のレンジの中央より高値圏内であれば
//次の足で買い、大引けで手仕舞い
If Close[0] > Value1 Then {
Buy("DT0701新規買", AtMarket);
}
SetStopEndofday(150500);
---------------------------------------------------------
レンジの中央を出す式を
安値+レンジ/2
としています。
DayLow()関数、DayHigh()関数を用いることで分足の中で
一日のデータを処理しています。
【実装】Qスティックと移動平均
http://ameblo.jp/traderssystem/entry-10104974328.html
-------------------------------------------------------
Input : QS_Period(8), Ma_Period(8);
//Qスティック=終値の単純移動平均 - 始値の単純移動平均
Value1 = Ma(Close, QS_Period) - Ma(Open, QS_Period);
Value2 = Ma(Value1, Ma_Period);
//本日の8日Qスティックが8日単純移動平均を上抜くとき
If CrossUp(Value1, Value2) Then {
//翌日の寄り付きで買い
Buy("SW2901新規買", AtMarket);
}
//本日の8日Qスティックが8日単純移動平均を下抜くとき
If CrossDown(Value1, Value2) Then {
//翌日の寄り付きで売り
Sell("SW2901新規売", AtMarket);
}
-------------------------------------------------------
Qスティックの定義もそれほど難しくないと思います。