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

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

スポンサーサイト

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

問題点が解決しました

ボラティリティーランナーのためのインジケータ(SAR)を作っています
前回掲載したソースコードでは、以下の問題がありました
   ***************
問題点:
インジケータを表示させてしばらく時間が経つと
現在バーの表示が突然動き始めます
この時、チャートのインジケータの始めの部分の位置が変わります
   ***************

ソースコードを単純化してチャートのインジケータ(SAR)の動きを観察していると
どうやら高値安値を求める期間がどんどん増えているように見えました

ここでいきなり結論です

インジケータは、Tickごとにプログラムを実行します

ストラテジーは、バーの移行時(終値の確定時)にプログラムを実行します


確証は有りませんが多分そうです

インジケータの過去部分は、バーの移行時(終値の確定時)にプログラムを1回実行するため
カウンター(countB=countB+1 等)で計算した高値安値の期間と実際のバーの本数が一致します

ところが現在バーは、Tickごと(価格の変化ごと)にプログラムを実行するため
バーは1本でもカウンターの計算値が増加して行きます
その結果、高値安値の計算期間が大きくなって
インジケータの現在バーの部分だけが大きく変化することになっていました

そこで解決方法ですが、バーの本数を別の方法で計算すれば良いわけです
探してみました

Strategy Language EditorのHelp Contentsの
Interfaces
IPriceOrder Interface
IPriceSeria Inteeface
の中に

The following statement assigns the current bar’s number to the int CurrentBar:

int CurrentBar = Bars.CurrentBar;

と言うのがあって
現在バーの番号を教えてくれるようなので使ってみました

番号は過去から現在に向かって増えて行きます

従って、現在バーの番号からエントリーした時のバーの番号を引くと
ポジション保有期間のバーの本数になります

この辺のところを抜き出すと

if(m_Position < 0){

countS = Bars.CurrentBar - m_entrybar;

m_lowerband.Value = Functions.Lowest(Bars.Close, countS, 1);
SARlineB.Value = m_lowerband.Value+ m_atr.Value * multirange ;


if (Functions.CrossesOver(this,Bars.High,SARlineB)){
m_Position = 1 ;
countS = 0;
m_entrybar = Bars.CurrentBar ;
}
}


if(m_Position > 0){

countB = Bars.CurrentBar - m_entrybar;

if (countB > 0){
m_upperband.Value = Functions.Highest(Bars.Close, countB, 1);
SARlineS.Value = m_upperband.Value- m_atr.Value * multirange ;
}

if (Functions.CrossesOver(this,SARlineS,Bars.Low)){
m_Position = -1;
countB = 0;
m_entrybar = Bars.CurrentBar ;
}
}

というわけで
なんとなくまともなインジケータになってきました


[当サイトで使っている自動売買システム]

FXCMはMT4よりも優れていると言っています

中身の分からないストラテジーがいやで
自分でストラテジーを作って運営しています

初めての方はこちらから
ストラテジートレーダー超入門 自動売買プログラミング編

Strategy Trader 紹介ビデオ 取扱説明 関連サイト

ストラテジートレーダー概要

ストラテジートレーダーβ版利用ガイド

[他の自動売買サイトを探す]

人気blogランキング






[相場の流れは]
FX ポータル

今井さん 利上げ観測
西原さん ユーロドルの下落に注意
松田さん ドル円はボックス
陳さん  日本国債の格下げ影響
吉田さん ECB利上げと財政危機の綱引き
スポンサーサイト

コメント

プログラム入力について

ストラテジートレーダーの運用方法を検索していてこちらを発見しました。

掲載されているプログラムデータやFXCMからリンクされているデータなど自分のPCに取り込みたいのですが、コピーして取り込んでもエラーが出て運用やバックテストができません。

例えば、エディターを立ち上げて、プログラム入力しようとすると、はじめから作成された文字列があります。
これの後に掲載れている文字列をペーストすればよいのでしょうか?
それとも、はじめからある文字列は消去してからペーストするのでしょうか?

また、コピーさせていただいた文字列に自分のデータなどなにか追加しないといけないのでしょうか。

いろいろ試しましたが全てエラーでテストできませんでした。

お手数ですが教えていただけないでしょうか。

  • 2011/02/09(水) 22:07:44 |
  • URL |
  • すし太郎 #-
  • [ 編集]

Re: プログラム入力について

> ストラテジートレーダーの運用方法を検索していてこちらを発見しました。
>
> 掲載されているプログラムデータやFXCMからリンクされているデータなど自分のPCに取り込みたいのですが、コピーして取り込んでもエラーが出て運用やバックテストができません。
>
> 例えば、エディターを立ち上げて、プログラム入力しようとすると、はじめから作成された文字列があります。
> これの後に掲載れている文字列をペーストすればよいのでしょうか?
> それとも、はじめからある文字列は消去してからペーストするのでしょうか?
>
> また、コピーさせていただいた文字列に自分のデータなどなにか追加しないといけないのでしょうか。
>
> いろいろ試しましたが全てエラーでテストできませんでした。
>
> お手数ですが教えていただけないでしょうか。


すし太郎さん
こんばんは

ストラテジー等のコピーの手順は以下になります


1 StrategyLanguage EditorのNew Techniqueアイコンをクリック
2 表示されたウィンドウTechnique Typeでタイプを選択してOKをクリック
3 表示されたウィンドウでストラテジーの名前をコピーするものと同じで入力する
4 表示されたウィンドウにあらかじめ記述されているソースコード(文字列)を消去する
5 ストラテジーをコピーして、貼り付ける
6 Compileをクリック、動作が完了するまで待つ
7 エラーが無ければStudiesの欄にストラテジーの名前が表示される

以上で使えるようになる筈です



  • 2011/02/10(木) 19:36:30 |
  • URL |
  • bingodog #-
  • [ 編集]

Re: Re: プログラム入力について

すし太郎さん

貼り付ければOKだと思っていたのですが
実際にやってみるとエラーがでました

ちょっと研究します

  • 2011/02/10(木) 20:12:30 |
  • URL |
  • bingodog #-
  • [ 編集]

早速ありがとうございます!

早速ありがとうございます!
こちらのサイトを参考にして自動売買に挑戦してみたいと考えています。

またご存知かもしれませんが、面白いハウツー本?がありましした(笑)
http://p.booklog.jp/book/16632

  • 2011/02/10(木) 20:39:09 |
  • URL |
  • すし太郎 #-
  • [ 編集]

コメントの投稿


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

トラックバック

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

FC2Ad

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