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

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

スポンサーサイト

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

4本値インジケータ(7時切り替え)

いままで作った7時切り替えのインジケータをまとめた4本値インジケータのCTLを掲載します。
続きを読むを参照してください。
この発展形としては、サマータイムに対応するために、切り替え時刻を変更できるようにすることが考えられます。

次回は、ピボットインジケータを作ります。

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

投げ銭クリック
FXについて

もっとシステムトレードを知るには
indicator ind_day_4price ;
input barminute=15;
draw line_open("Day Open"), line_close("Day Close"),
line_high("Day High"), line_low("Day Low");
vars lst(number), fst(number), j(number),jday(number),jhour(number),
last_high(number), last_low(number), iday(number),ihour(number),
curopen(number), lastclose(number),lst_hour(number),
daystamp(number), i(number), count(number), count7(number);
begin
lst := back(close);
fst := front(close);
if lst < fst then return;

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

for i := (420/barminute) + 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/barminute]);

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/barminute)]);
{0時から6時までのバ-の日付を7時間分遅らせた日付にする}

for i := lst-1 downto fst+1+(420/barminute) 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/barminute)]);

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

daystamp := iday;
end;
end;
/*high lowの過日のライン */

lst := back(high);
fst := front(high);
if lst < fst then return;
daystamp := day(timestamp[fst+(1440/barminute)]);

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

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

if iday <>daystamp then begin
count := 1440/barminute;
last_high := movmax(high, i-1, count);
last_low := movmin(low, i-1, count);

for j :=i-1 downto i-(1440/barminute) do begin
line_high[j] := last_high;
line_low[j] := last_low;
end;
end ;
daystamp := iday;
end;


/*high lowの本日のライン */
/*現在が24時前の場合の期間計算*/
lst := back(high);
fst := front(high);
if lst < fst then return;
jhour := hour(timestamp[lst]);
j:=lst;
if 23 >= jhour and jhour >= 7 then begin

count := 0;
while hour(timestamp[j]) >= 7 do begin
count := count+1;
j := j-1;
end;

j :=lst;
last_high := movmax(high, j, count);
last_low := movmin(low, j, count);

if j >= fst then
for j :=lst downto lst+1-count do begin
line_high[j] := last_high;
line_low[j] := last_low;
end;
end;


/*現在が0時から7時の場合の期間計算*/
lst := back(high);
fst := front(high);
if lst < fst then return;
jhour := hour(timestamp[lst]);
j := lst;

if 6 >= jhour and jhour >= 0 then begin
  count := 0;
while 6 >= hour(timestamp[j]) and hour(timestamp[j]) >= 0 do begin
count := count+1; {バ-数を数える条件に注意。0以上だけにするとラインがでなくなる }
j := j-1;
end;
          
count7 := count+(1440/barminute)-(420/barminute) ;{ 前日の7時までのバ-数にする}
j :=lst;
   last_high := movmax(high, j, count7);
   last_low := movmin(low, j, count7);

   if j >= fst then
for j :=lst downto lst+1-count7 do begin
line_high[j] := last_high;
line_low[j] := last_low;
end;
end;
end.
スポンサーサイト

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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