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

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

スポンサーサイト

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

始値終値インジケータ(7時切り替え)

whileの使い方がどうもよく分からないので、他の方法でループを作ることにする。

ループを作る方法には
1 for --A-- to --B-- do begin C
AからBまで順番にCを実行する(A,Bはバーの番号)
2 for --B-- downto --A-- do begin C
  BからAまで順番にCを実行する(A,Bはバーの番号)
3 while --D-- do begin C
  Dの条件が満たされる間はCを実行する

7時日付切り替えの始値インジケータはうまく動作する。
これには1のfor to do beginを使っている。
始値は、その日の一番初めの値を過去から未来に向かって記憶させている。
それでは、終値は始値の場合の反対の操作をすればいいのではないかと電車の中で考えた。 
2のfor downto do begin を使えばよさそうなので半信半疑でやってみた。

あっけなく完成。
分かってしまえば何でも簡単なんですよね。
コメント付きCTLは「続きを読む」で


役に立ちそうとか、もっとやれと思う方は、投げ銭クリックをお願いします。
モチベーションが上がります

為替投げ銭クリック
次回につづく
もっとシステムトレードを知るには

indicator ind_day_open_close_7;
input minite=15; {初期設定のチャ-トは15分足}
draw line_open("Day Open"), line_close("Day Close");
vars daystamp(number), iday(number),ihour(number),jday(number), jhour(number),
i(number), j(number), curopen(number), lastclose(number),
lst(number), fst(number), lst_hour(number);
begin
lst := back(close);
fst := front(close);
if lst < fst then return;

/*openライン*/
curopen := open[fst+(420/minite)];
line_open[fst+(420/minite)] := curopen;
daystamp := day(timestamp[fst+(420/minite)]);

for i := (420/minite) + 1 + fst to lst do begin
iday := day(timestamp[i]);
ihour:= hour(timestamp[i]);

if ihour >= 0 and ihour <= 6 then
iday := day(timestamp[i-420/minite]);

if iday = daystamp then
line_open[i] := line_open[i - 1]
else begin
line_open[i] := open[i];

daystamp := iday;
end;
end;

/*closeライン*/
lastclose := close[lst];
line_close[lst] := lastclose;
lst_hour:= hour(timestamp[lst]);  
daystamp := day(timestamp[lst]);  { daystampはlst最後のバ-}
 if lst_hour >= 0 and lst_hour <= 6 then
  daystamp := day(timestamp[i-(420/minite)]);
{0時から6時までのバ-の日付を7時間分遅らせた日付にする}

for i := lst-1 downto fst+1+(420/minite) do begin
{ 最後のバ-の1本前から初めから30本目まで }
  iday := day(timestamp[i]);    { idayはlst-1 }
ihour:= hour(timestamp[i]);  {0時から6時までのバ-の日付を7時間分遅らせた日付にする}
 if ihour >= 0 and ihour <= 6 then
    iday := day(timestamp[i-(420/minite)]);

  if iday = daystamp then
line_close[i] := line_close[i+1]
 else begin
line_close[i] := close[i];    

daystamp := iday;
end;
end;
end.
スポンサーサイト

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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