double iWPR( string symbol, int timeframe, int period, int shift) Larry Williams の Percent Range インジケータの計算。 パラメータ: シンボル - このインジケータが計算されるデータ上の計器のシンボル名。NULLはカレントシンボルを意味する。 timeframe - Period.チャート期間のいずれかとすることができる。0は現在のチャートの期間を意味します。 period - インディケータを計算する期間(バーの数)。 shift - インジケータ・バッファから受け取った値のインデックス(現在のバーから指定した期間だけ後ろに相対的にシフトします)。
分足ローソク足(Alpariなど)をダウンロードし、分足ローソク足でテストをしてみる。
H4のMTSがあるのに、どうやってミニッツのテストをすればいいんだ......?
4時間足のローソク足で、5pipsのストップでテストすることはできません。
自動売買選手権2007:エキスパートにありがちなエラー」の記事で
OrderSendのエラー130(ERR_INVALID_STOPS)は、ストップが間違っているか、近すぎるストップだと読んだことがあります。
DCに電話して、停車できる最短距離を聞いたところ、そんな制限はないとのことでした......。不思議だ!
また、ひとつだけわからないことがあります。手動で注文を出すと、実際にはストップやプロフィットを設定できないのですが、OrderSend()ではどのように行っているのでしょうか?
手動で注文を出してからストップをかけるか確認したところ...建値から最低4pips、つまり現在値から設定する必要がある...とのことでした。
あとはOrderModify()をいじくり回すだけです。なぜOrderSend()にストップロスが必要なのでしょうか?
H4のMTSがあるのに、どうやってミニッツのテストをすればいいんだ......?
なぜダメなのか?最小のTFに対するテストは次のように行われる。
このように呼び出しを記述します(例)。
分でやれば一番効率よく正しいテストができる!
が一番正しいでしょう!
---
残念ながらティックではできません!MT4テスターにはティック履歴がないからです
---
TFをすぐに書けるようになりましょう!そうすれば、EAがどのTFで実行されたかなんて気にならなくなりますよ。
定数の代わりにパラメータを記述することは合理的です - よりシンプルなコードと明確な認識のために私は定数を置きます
ゆり)プロじゃないから...)wpr[1] = iWPR( Symbol(),10, PERIOD_H4, 1 );
ユリ)私はこの仕事のプロではないので...)wpr[1] = iWPR ( Symbol(), 10, PERIOD_H4, 1 );
iWPRは内蔵のインジケーター
double iWPR( string symbol, int timeframe, int period, int shift)
Larry Williams の Percent Range インジケータの計算。
パラメータ:
シンボル - このインジケータが計算されるデータ上の計器のシンボル名。NULLはカレントシンボルを意味する。
timeframe - Period.チャート期間のいずれかとすることができる。0は現在のチャートの期間を意味します。
period - インディケータを計算する期間(バーの数)。
shift - インジケータ・バッファから受け取った値のインデックス(現在のバーから指定した期間だけ後ろに相対的にシフトします)。
例:
if(iWPR(NULL,0,14,0)>iWPR(NULL,0,14,1)) return(0);
FAQに記載されているので、見てみてください。
wpr[...]は、異なる期間の各指標の結果をまとめた配列です。
( 配列に好きな名前を付けることができます。)
double wpr[5] ;
wpr[1] = iWPR ( Symbol(), 10, PERIOD_H4, 1 );
wpr[2] = iWPR ( Symbol(), 20, PERIOD_H4, 1 );
wpr[3] = iWPR ( Symbol(), 40, PERIOD_H4, 1 );
wpr[4] = iWPR ( Symbol(), 60,PERIOD_H4, 1 );
期間違いの通話を見せただけなのに...。
指標にピリオドを打つことで、どのTFでもテストできるようにしたことです
オープンオーダーの改造をすることにした...。
OrderSendの 直後
ログにエラーがあります。
OrderModify関数の無効なチケット
11:43:54 2005.01.26 13:12 EURUSD: OrderModify error 4051
何が問題なのか、アドバイスをお願いします。
新しい停止値は、以下のように設定する必要があります。:
新しいストップを設定する場所 - pips (整数) で指定します。OrderClose で使用したMarketInfo() は OrderModify でも必要ですか?