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

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

スポンサーサイト

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

自動判別ファンクションの日足、週足対応

チャートの時間足の自動判別ファンクションに日足と週足を追加しました。

日足、週足のdifhourは0なので、difday=0で区別しています。
先日のコメント欄でも述べましたが、
隣のバーとの時間差が不規則になった場合は、結果から見ると無視します。
条件に合致した場合のみ結果が出ますので、誤動作は起きないと思いますが、
不具合を発見されましたら、コメントをしてください。
***************

function func_timeframe ;
{ チャ-ト足の時間判別,月足を除く }
result res(number) ;
vars i(number), fst(number), lst(number), difhour(number), difday(number);
begin

fst := front(close) ;
lst := back(close) ;

for i := fst to lst-1 do begin
difday := day(timestamp[i+1]) - day(timestamp[i]) ;
difhour := hour(timestamp[i+1]) - hour(timestamp[i]) ;

if difday=1 and hour(timestamp[i])=9 then res := 1440;
if difday=7 and hour(timestamp[i])=9 then res := 10080;
if difday=0 then begin

if minute(timestamp[i]) = 0 then begin
if difhour = 1 then res := 60;
if difhour = 2 then res := 120;
if difhour = 4 then res := 240;
if difhour = 8 then res := 480;
if difhour = 0 then
res := minute(timestamp[i+1]) - minute(timestamp[i]) ;
end;
end;
end;
end.
********************

indicator ind_auto_chartBar_TF ;
{ チャ-トタイムフレ-ムの判別、分数で表現する }
draw chartBar("barminute") ;
vars fst(number), lst(number), barminute(number), k(number) ;
begin

fst := front(close) ;
lst := back(close) ;
barminute := func_timeframe();

for k := fst to lst do begin
chartBar[k] := barminute ;
end;
end.

他のブロガーの戦略は 人気blogランキング

検証にはGFTのdealbook360を使っています
自前の検証をお勧めします
口座開設はこちらから
FX
スポンサーサイト

テーマ:FXでシステムトレード - ジャンル:株式・投資・マネー

コメント

こんにちは。
何も同じもの作ることはないと思ったのですが、未完成のまま残しておくのもなんなので別方式として形にしてみました。動作が違うのはTickと判定不能だった場合に0を返すことと、連続したバーの時間差だけを見ているので、月足は戻り値が43200と44640の2種類できてしまいました。

function isTimeFrame ;
result res(number) ; { return current time frame in minutes }
vars i(number), latest(number), difsecond_1(number), difsecond_2(number);

begin

latest := back(close);
if latest < 15 then return;
res:= 0;
difsecond_1:=0;
difsecond_2:=0;

for i := latest downto (latest - 10) do begin
difsecond_1 := int(timestamp[i]) - int(timestamp[i-1]);
difsecond_2 := int(timestamp[i-1]) - int(timestamp[i-2]);

if difsecond_1 = difsecond_2 then begin
res:= int(difsecond_1 / 60);
break; { exit from for loop }
end; { end-if }
end; {end-for}

end.

  • 2009/02/24(火) 01:08:57 |
  • URL |
  • AL #CVA7xI/A
  • [ 編集]

Re: タイトルなし

ALさん

人によって発想が違って面白いですね。
int(timestamp[i])は、秒数になるんですか。
知りませんでした。
勉強になります。

  • 2009/02/24(火) 21:21:41 |
  • URL |
  • bingodog #-
  • [ 編集]

コメントの投稿


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

トラックバック

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

FC2Ad

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