FX取引ルール確立のために

取引方針が定まらぬ臆病者の外国為替証拠金取引の行方。 取引ルールの柱にテクニカルな売買サインを導入中。システム開発状況を全て公開。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ドル円分析

ドル円分析です
2009.12.3ドル円分析
月足:
1998年の高値から下落傾向にあります。
1995年の安値が目標値と言われと納得します。

週足:
2007年6月の高値124円から下落しています。
下落トレンドラインに沿って下落しています。
大きなリバウンドが2回あります。
ジグザグラインは6%に設定してあります。
下落パターンの時間と価格は以下になります。

下落 39週間 24円
反発 23週間 11円
下落 24週間 22円
反発 11週間 11円
現在の下落は今のところ 35週間 14円

となっています。
価格の反発は下落値の約半分です。
先週の最安終値が底だとすると7円戻す計算です。
価格的には、93円ぐらいになります。

時間的には、今回の下げは以前よりもゆっくりとしています。
すでに35週間経過していますが、直近で下落の期間が長かったのは、
2002年~2004年にかけて77週間21円というのがあります。

仮に70週間で20円下げるとすると来年の夏から秋にかけてドル円は80円になる計算です。
最安値の時期はともかくとして、80円というのは下落目標として納得します。
その間、6%以上戻すことはないわけで、価格としては5.3円ぐらいになります。

先週が底になるには86.5+5.3=91.8まで上げる必要があります。
ちょっとそんな雰囲気の相場ではありません。

ちなみにここで言っている価格はすべて週の終値です。

日足:
直近下降トレンドラインを引き忘れましたが、現在は89円後半にいます。
戻りの最初の目途になります。
最終的には、95円台にある下落トレンドラインを上抜けるまでは下落傾向にあると判断します。

4時間足:
水平線はレジスタンスとサポートラインです。
88.62を上抜けられるかが注目点です。
ここを抜けても沢山のレジスタンスラインがあります。その上限を抜けると直近下降トレンドラインに当たります。

戦略:
売りから入る。
88円半ばぐらいで売りポジション。
89円台で追加売りポジション。
ストップは91.50。

参考になったらクリックよろしく 人気blogランキング
    
検証にはGFTのdealbook360を使っています
GFT

システム売買ルール

自前の検証をお勧めします
口座開設はこちらから
サザインベストメント
スポンサーサイト

コメント

たびたびすみません

この間は、わけのわからない質問すみませんでした。
今回、は
MT4などにある
自動トレンドラインなど有ると便利じゃないのかなと思いました。
他のサイトで、

//高低把握&自動フィボナッチ&トレンドラインのようなものを表示
//チャート時間との同期機能無し
// Veriosn 3.0
indicator a1_AutomaticFibonacci3;
input Bars = 0, period = 3, HL_Frame_Visible = false, FibonacciLine_Visible = true, TrandLine_Visible = true, Small_TrandLine_Visible = true, Displacement = 0;
draw line_trand_h("Trand-H", solid_line, cyan, 1), line_trand_l("Trand-L", solid_line, cyan, 1), line_trand_h2("Trand-H2", solid_line, magenta, 1), line_trand_l2("Trand-L2", solid_line, magenta, 1), line_fibo_h2("Fibo-H2", dash_dot_dot_line, white), line_fibo_h1("Fibo-H1", dash_dot_line, white), line_fibo_m("Fibo-M", dot_line, cyan), line_fibo_l1("Fibo-L1", dash_dot_line, white), line_fibo_l2("Fibo-L2", dash_dot_dot_line, white), line_high("高値", solid_line, gray, 1), line_low("安値", solid_line, gray, 1), line_egde_top("天井", solid_line, magenta, 3), line_egde_btm("底", solid_line, magenta, 3), line_egde_top2("大天井", solid_line, cyan, 3), line_egde_btm2("大底", solid_line, cyan, 3);
vars Egde_Scan = true, a_high(series), a_low(series), f(number), b(number), bcnt(number), sp(number), b_high(series), b_low(series), scan_cycle(number), scan_offset(number), base_high(series), base_low(series), b_egde_top(series), b_egde_btm(series), ecnt_h(number), ecnt_l(number), eb(number), ef(number), e_high_val(series), e_low_val(series), e_high_ptr(series), e_low_ptr(series), becnt_h(number), becnt_l(number), beb(number), bef(number), be_high_val(series), be_low_val(series), be_high_ptr(series), be_low_ptr(series), trd_h_ptr(series), trd_l_ptr(series), fibo_base(number), fibo_rng(number), i(number), j(number), k(number), w1(number), w2(number), w3(number), w4(number);
begin

period := min(max(period, 3), 20);
a_high := high;
a_low := low;
if Bars = 0 then f := front(a_low) else f := min(back(a_low), max(front(a_low), back(a_low) - Bars + 1));
b := back(a_low) - Displacement;
bcnt := Int((b - 1) / period) + 1;

//ローソクを束ねる
sp := bcnt - 1;
i := b - 1;
while (i - period + 1) >= f and sp > 0 do begin
b_high[sp] := movmax(a_high, i , period);
b_low[sp] := movmin(a_low, i , period);
sp := sp - 1;
i := i - period;
end;

//MTF(高値安値)を表示
if HL_Frame_Visible then begin
sp := bcnt - 1;
i := b - 1;
while (i - period + 1) >= f and sp > 0 do begin
//高値安値の線は全ドットを描画(斜線OK)
for j := (i - period + 1) to i do begin
line_high[j] := b_high[sp];
line_low[j] := b_low[sp];
end;
sp := sp - 1;
i := i - period;
end;
end;

//MTF中の高値安値を使い各線の処理開始
// if Egde_Visible then begin

b_egde_top := makeseries(1, bcnt, 0);
b_egde_btm := makeseries(1, bcnt, 9999);

//MTFをスライドさせてローソク群のエッジ(高値安値)を複数回調査。高値安値を固定化。
if Egde_Scan then scan_cycle := period - 1 else w1 := 0;
for scan_offset := 0 to scan_cycle do begin

b_high[bcnt] := a_high[b];
b_low[bcnt] := a_low[b];

if scan_offset > 0 then begin
//スキャンに使うMTFを作成
sp := bcnt - 1;
//i := b - 1;
i := b - 1 - scan_offset;
while (i - period + 1) >= f and sp > 0 do begin
b_high[sp] := movmax(a_high, i , period);
b_low[sp] := movmin(a_low, i , period);
sp := sp - 1;
i := i - period;
end;
end else begin
//表示中のMTFを記憶
base_high := b_high;
base_low := b_low;
end;

//ローソク群のエッジ調査開始。そして結果を配列に格納
//for i := bcnt downto 1 + 2 do begin <= バグ発生NG
for i := bcnt downto front(b_high) + 2 do begin

if b_high[i - 1] > b_high[i] then begin
for j := i downto front(b_high) + 2 do begin
if b_high[j - 2] < b_high[j - 1] then begin
if b_egde_top[i - 2] = 0 and b_egde_top[i] = 0 then begin
if base_high[i - 2] = b_high[i - 1] then w1 := 2 else w1 := 1;
b_egde_top[i - w1] := b_high[i - 1];
end;
break;
end;
if b_high[j - 2] > b_high[j - 1] then break;
end;
end;

if b_low[i - 1] < b_low[i] then begin
for j := i downto front(b_high) + 2 do begin
if b_low[j - 2] > b_low[j - 1] then begin
if b_egde_btm[i - 2] = 9999 and b_egde_btm[i] = 9999 then begin
if base_low[i - 2] = b_low[i - 1] then w1 := 2 else w1 := 1;
b_egde_btm[i - w1] := b_low[i - 1];
end;
break;
end;
if b_low[j - 2] < b_low[j - 1] then break;
end;
end;
end; //for i := bcnt
end; //for scan_offset := 0

//スキャンしたエッジ情報を一旦集約。そして結果を配列に格納
//その配列はフィボナッチ線、トレンドラインの大元となる
//後でチャート表示する為に値と同時に位置も記憶する
//エッジ情報(天井、底)の表示もここで行う
sp := bcnt - 1;
i := b - 1;

ecnt_h := 0;
ecnt_l := 0;
eb := bcnt - 1;

while (i - period + 1) >= f and sp > 0 do begin
//高値安値の線は右側に描画(左1ドットを描画しない)(斜線NG)
w1 := i - period + 1 + 1;
if b_egde_top[sp] <> 0 then begin
if Small_TrandLine_Visible then begin
for j := w1 to i do begin
line_egde_top[j] := b_egde_top[sp];
end;
end;
e_high_val[eb - ecnt_h] := b_egde_top[sp];
e_high_ptr[eb - ecnt_h] := i;
ecnt_h := ecnt_h + 1;
end;
if b_egde_btm[sp] <> 9999 then begin
if Small_TrandLine_Visible then begin
for j := w1 to i do begin
line_egde_btm[j] := b_egde_btm[sp];
end;
end;
e_low_val[eb - ecnt_l] := b_egde_btm[sp];
e_low_ptr[eb - ecnt_l] := i;
ecnt_l := ecnt_l + 1;
end;
sp := sp - 1;
i := i - period;
end;


//集約したエッジ情報からさらに高値安値を調査。そして結果を配列に格納
//その配列はフィボナッチ線、トレンドラインの元となる
//後でチャート表示する為に値と同時に位置も記憶する
//ビッグエッジ(大天井、大底)の表示もここで行う

//if BigEgde_Visible then begin

sp := bcnt;
i := b;
eb := eb + 1;

e_high_val[eb] := a_high[i];
e_high_ptr[eb] := i;
e_low_val[eb] := a_low[i];
e_low_ptr[eb] := i;

ecnt_h := ecnt_h + 1;
ecnt_l := ecnt_l + 1;

becnt_h := 0;
becnt_l := 0;
beb := bcnt - 1;

ef := (eb - ecnt_h + 1) + 2;
if eb >= ef then begin
for i := eb downto ef do begin
if e_high_val[i - 1] > e_high_val[i] then begin
//////////////////
for j := i downto ef do begin
if e_high_val[j - 2] < e_high_val[j - 1] then begin
if TrandLine_Visible then begin
w1 := e_high_ptr[i - 1] - period + 1 + 1;
w2 := e_high_ptr[i - 1];
for k := w1 to w2 do begin
line_egde_top2[k] := e_high_val[i - 1];
end;
end;
be_high_val[beb - becnt_h] := e_high_val[i - 1];
be_high_ptr[beb - becnt_h] := e_high_ptr[i - 1];
becnt_h := becnt_h + 1;
break;
end;
if e_high_val[j - 2] > e_high_val[j - 1] then break;
end;
//////////////////
end;
end; //for i := eb
end;

ef := (eb - ecnt_l + 1) + 2;
if eb >= ef then begin
for i := eb downto ef do begin
if e_low_val[i - 1] < e_low_val[i] then begin
//////////////////
for j := i downto ef do begin
if e_low_val[j - 2] > e_low_val[j - 1] then begin
if TrandLine_Visible then begin
w1 := e_low_ptr[i - 1] - period + 1 + 1;
w2 := e_low_ptr[i - 1];
for k := w1 to w2 do begin
line_egde_btm2[k] := e_low_val[i - 1];
end;
end;
be_low_val[beb - becnt_l] := e_low_val[i - 1];
be_low_ptr[beb - becnt_l] := e_low_ptr[i - 1];
becnt_l := becnt_l + 1;
break;
end;
if e_low_val[j - 2] < e_low_val[j - 1] then break;
end;
//////////////////
end;
end; //for i := eb
end;

//end;

//直近のビッグエッジを使いフィボナッチ線を表示
//最新のローソクの高値安値がフィボナッチの基準線を突破していた場合は置き換える

if FibonacciLine_Visible then begin
fibo_base := min(be_low_val[beb], a_low[b]);
fibo_rng := max(be_high_val[beb], a_high[b]) - fibo_base;
w1 := min(be_high_ptr[beb], be_low_ptr[beb]) + 1 - period;
w2 := b + 1;
for i := w1 to w2 do begin
//line_fibo_h3[i] := fibo_base + fibo_rng * 1;
line_fibo_h2[i] := fibo_base + fibo_rng * 0.726;
line_fibo_h1[i] := fibo_base + fibo_rng * 0.618;
line_fibo_m[i] := fibo_base + fibo_rng * 0.5;
line_fibo_l1[i] := fibo_base + fibo_rng * 0.382;
line_fibo_l2[i] := fibo_base + fibo_rng * 0.274;
//line_fibo_l3[i] := fibo_base + fibo_rng * 0;
end;
end;

//ビッグエッジ情報を使いトレンドラインのようなものを表示
//いいロジックを思いつかず現状ではこれが精一杯
//ローソク間の線引きである為そのままMTF単位を使うと期間が長い場合まぬけになる
//そこでMTF内のどこで高値安値なのかを調べ位置の調整をしている

if TrandLine_Visible then begin

bef := beb - becnt_h + 1;
if beb >= (bef + 1) then begin
//位置調整
for i := beb downto bef do begin
w1 := be_high_ptr[i];
w2 := a_high[w1];
w3 := w1;
for j := w3 - period + 1 to w3 - 1 do begin
if a_high[j] > w2 then begin
w1 := j;
w2 := a_high[j];
end;
end;
trd_h_ptr[i] := w1;
end;
//線を表示
for i := beb downto bef + 1 do begin
w1 := be_high_val[i - 1] - be_high_val[i];
w2 := trd_h_ptr[i - 1] - trd_h_ptr[i];
w3 := w1 / w2;
w4 := 0;
if i = beb then begin
for j := trd_h_ptr[i] to b + 1 do begin
line_trand_h[j] := be_high_val[i] + w4;
w4 := w4 + w3;
end;
w4 := 0;
end;
for j := trd_h_ptr[i] downto trd_h_ptr[i - 1] do begin
line_trand_h[j] := be_high_val[i] - w4;
w4 := w4 + w3;
end;
end;
end;

bef := beb - becnt_l + 1;
if beb >= (bef + 1) then begin
//位置調整
for i := beb downto bef do begin
w1 := be_low_ptr[i];
w2 := a_low[w1];
w3 := w1;
for j := w3 - period + 1 to w3 - 1 do begin
if a_low[j] < w2 then begin
w1 := j;
w2 := a_low[j];
end;
end;
trd_l_ptr[i] := w1;
end;
//線を表示
for i := beb downto bef + 1 do begin
w1 := be_low_val[i - 1] - be_low_val[i];
w2 := trd_l_ptr[i - 1] - trd_l_ptr[i];
w3 := w1 / w2;
w4 := 0;
if i = beb then begin
for j := trd_l_ptr[i] to b + 1 do begin
line_trand_l[j] := be_low_val[i] + w4;
w4 := w4 + w3;
end;
w4 := 0;
end;
for j := trd_l_ptr[i] downto trd_l_ptr[i - 1] do begin
line_trand_l[j] := be_low_val[i] - w4;
w4 := w4 + w3;
end;
end;
end;

end;

if Small_TrandLine_Visible then begin

ef := eb - ecnt_h + 1;
if (eb - 1) >= (ef + 1) then begin
//位置調整
for i := eb - 1 downto ef do begin
w1 := e_high_ptr[i];
w2 := a_high[w1];
w3 := w1;
for j := w3 - period + 1 to w3 - 1 do begin
if a_high[j] > w2 then begin
w1 := j;
w2 := a_high[j];
end;
end;
trd_h_ptr[i] := w1;
end;
//線を表示
for i := eb - 1 downto ef + 1 do begin
w1 := e_high_val[i - 1] - e_high_val[i];
w2 := trd_h_ptr[i - 1] - trd_h_ptr[i];
w3 := w1 / w2;
w4 := 0;
if i = (eb - 1) then begin
for j := trd_h_ptr[i] to b + 1 do begin
line_trand_h2[j] := e_high_val[i] + w4;
w4 := w4 + w3;
end;
w4 := 0;
end;
for j := trd_h_ptr[i] downto trd_h_ptr[i - 1] do begin
line_trand_h2[j] := e_high_val[i] - w4;
w4 := w4 + w3;
end;
end;
end;

ef := eb - ecnt_l + 1;
if (eb - 1) >= (ef + 1) then begin
//位置調整
for i := eb - 1 downto ef do begin
w1 := e_low_ptr[i];
w2 := a_low[w1];
w3 := w1;
for j := w3 - period + 1 to w3 - 1 do begin
if a_low[j] < w2 then begin
w1 := j;
w2 := a_low[j];
end;
end;
trd_l_ptr[i] := w1;
end;
//線を表示
for i := eb - 1 downto ef + 1 do begin
w1 := e_low_val[i - 1] - e_low_val[i];
w2 := trd_l_ptr[i - 1] - trd_l_ptr[i];
w3 := w1 / w2;
w4 := 0;
if i = (eb - 1) then begin
for j := trd_l_ptr[i] to b + 1 do begin
line_trand_l2[j] := e_low_val[i] + w4;
w4 := w4 + w3;
end;
w4 := 0;
end;
for j := trd_l_ptr[i] downto trd_l_ptr[i - 1] do begin
line_trand_l2[j] := e_low_val[i] - w4;
w4 := w4 + w3;
end;
end;
end;

end;

// end;
end.

というのがありました。
もし単純にbingodogさんが作ると
どのようになるのか興味がわいてきます。
どうでしょうか?

Re: たびたびすみません

kouzyさん

情報ありがとうございます。
自動トレンドラインを考えたこともあるのですが、
手で引いた方が早いということで着手していません。
トレンドラインをもとにしたストラテジーというのもありそうです。
今後の参考にさせていただきます。

  • 2009/12/06(日) 13:19:58 |
  • URL |
  • bingodog #-
  • [ 編集]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://fxrun.blog55.fc2.com/tb.php/1346-c4cce92f
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。