標準のインジケーターが上書きされるのか!? - ページ 3 1234567 新しいコメント Forex Trader 2006.11.01 10:47 #21 Roshさん、USDCHFのバーの開始が遅いためにエラーが発生するのかどうかを考えているところなんです。これを追うために、MAを削除し(邪魔なだけ)、さらにClose[1]とOpen[1]を導入しています。Open[1]が常に正しいことを意味し、これが問題であれば、その不一致はOpen[0]にあり、Open[1]にはないことになります。今すぐ確認する何を見逃したのか? Forex Trader 2006.11.01 10:49 #22 さて、2枚の写真を添付しましたが、GBPJPYに新しいバーが 表示されたとき、変更されていない古いUSDCHFのチャートデータを参照しているため、アルゴリズムが正しく計算されていないことがわかります。それが正しくカウントされるのは1つのケースだけで、それはネイティブの「チャート」に載せた場合ですが、目的はその逆です。 Forex Trader 2006.11.01 10:56 #23 私もそう思います。ただし、Open[1]でテストしてエラーがないことが確認できた場合に限ります。その場合、私は、はい、MTにはバグがないことを確認します。あるある...。という、いわば控えめな表現。 さらに、その制限を回避する方法を見つけることも課題です。例えば、USDCHFのデータが到着するまでEURUSDのインジケータの再描画を禁止する。現在、次のようなバリエーションをテストしています。 while(nPos > 1 || (nPos == 1 && Time[0] <= iTime("USDCHF",0,0)))。 しかし、それはMTがIndicatorCountedをどのように計算するかによります。ティック到着時間による場合は動作しませんが、バー再描画の事実による場合は動作します。見てみよう。 Forex Trader 2006.11.01 10:58 #24 現在、日本時間では11時56分、サーバー時間では9時56分です。 Open[1]EURUSD H1 is 1.2755 Open[1] USDCHF H1 is 1.2443 EURに 新しい1時間バーが現れ、フランにはまだ 何も変化していない。アルゴイトムは何をするのですか? Forex Trader 2006.11.01 11:01 #25 私もそう思います。ただし、Open[1]でтестирование 、エラーが発生しないことを示す場合に限ります。その場合、私は、はい、MTにはバグがないことを確認します。あるある...。寡黙というかなんというか。 さらに、その制限を回避する方法を見つけることも課題です。例えば、USDCHFのデータが到着するまでEURUSDのインジケータの再描画を禁止する。現在、次のようなバリエーションをテストしています。 while(nPos > 1 || (nPos == 1 && Time[0] <= iTime("USDCHF",0,0)))。 しかし、ここでは、MTがIndicatorCountedをどのように計算するかにすべてがかかっています。ティックの到着時間による場合は動作しませんが、バーの再描画の事実による場合は動作します。見てみよう。 ストップ、ストップここで、あなたが書くのは: コードからわかるように、このインジケータは接続されている通貨に依存しません。USDCHFでは常に動作しています。今回はAUDUSDとEURUSDの2つのチャートにインジケータを貼り 付けていますが、どのチャートに貼り付けても良いと思います。数日間放置しておくのです。そして、チャートがDIFFERENTになっていることがわかります。同じ指標です。リアルタイムで同じくMT。強制的に再描画(リンク解除-リンク)-同一になる。しばらくの間 オンライン作業ということで、今度はテスターに飛び火したわけですね。そんな暇はない。 Forex Trader 2006.11.01 11:07 #26 現在の時刻はMSKで11-56、サーバータイムで9-56です。<br / translate="no"> Open[1] EURUSD H1 は1.2755。 Open[1] USDCHF H1 は1.2443。 ユーロに 新しい時間足が表示され、フランクにはまだ 何も変化して いません。アルゴイトムは何をするのですか? はい、おっしゃるとおりです。バーの数ではなく、時間を見なければならない。 Forex Trader 2006.11.01 11:09 #27 <br / translate="no">ということで、オンラインワークの話から、今度はテスターに飛び火しました。そんな暇はない。 テスターはありません。オンラインのみ。 Forex Trader 2006.11.01 11:14 #28 削除済み Forex Trader 2006.11.01 13:46 #29 Rosh様、以下のような状況があり得るのか、ご教示いただけないでしょうか。 ドロップダウンを見られるように、バーの一覧の2番目のファイルに出力しました。 //+------------------------------------------------------------------+ //| RedrawIndicators.mq4 | //| Satori | //| http://www.metaquotes.ru/forum/7790/ | //+------------------------------------------------------------------+ #property copyright "Satori" #property link "http://www.metaquotes.ru/forum/7790/" #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Red #property indicator_color2 Blue #property indicator_color3 Yellow //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; extern int BarsCount=0; //кол-во считаемых баров, если 0 - то все extern string Currency1="EURUSD"; extern string Currency2="GBPUSD"; int handle,handle2; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexLabel(0,Currency1); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtMapBuffer2); SetIndexLabel(1,Currency2); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,ExtMapBuffer3); handle= FileOpen("TestFile.csv",FILE_CSV|FILE_WRITE,';'); handle2= FileOpen("TestFile2.csv",FILE_CSV|FILE_WRITE,';'); if(handle<1 || handle2<1 ) { Print("Файл не обнаружен, последняя ошибка ", GetLastError()); return(false); } else { FileWrite (handle,"index",Symbol(),"index",Currency1,"index",Currency2); FileWrite (handle2,"index",Currency1,Currency2,Symbol()); } return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- FileClose(handle); FileClose(handle2); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int i; int test1,test2; datetime tt1,tt2,TimeMain; BarsCount=MathMin(Bars,(MathMin(iBars(Currency1,Period()),iBars(Currency2,Period())))); Print (Bars," ",iBars(Currency1,Period())," ",iBars(Currency2,Period())); Print (BarsCount); for (i=0;i<BarsCount-counted_bars;i++) { TimeMain=Time[i]; test1=iBarShift(Currency1,Period(),TimeMain); test2=iBarShift(Currency2,Period(),TimeMain); ExtMapBuffer1[i]=iTime(Currency1,Period(),test1); ExtMapBuffer2[i]=iTime(Currency2,Period(),test2); ExtMapBuffer3[i]=(ExtMapBuffer1[i]-ExtMapBuffer2[i]); tt1=Time[i]-ExtMapBuffer1[i]; tt2=Time[i]-ExtMapBuffer2[i]; if (ExtMapBuffer3[i]!=0 || tt1!=0 || tt2!=0) { if (FileWrite (handle, i,TimeToStr(Time[i]),iBarShift(Currency1,Period(),TimeMain),TimeToStr(ExtMapBuffer1[i]),iBarShift(Currency2,Period(),TimeMain),TimeToStr(ExtMapBuffer2[i]) )<=0) Print("нифига не пишет!!"); } FileFlush(handle); if (FileWrite (handle2,i, TimeToStr(iTime(Currency1,Period(),test1)), TimeToStr(iTime(Currency2,Period(),test2)), TimeToStr(Time[i]) )<=0) Print("нифига не пишет!!"); FileFlush(handle2); }//---- return(0); } //+------------------------------------------------------------------+ アルパリではない他の2つの証券会社(MIG、FIBO)のEURGBP 4Hで実行しています。 写真はどちらもほぼ同じですが、ここではMIGの例を紹介します。 EURGBP指数 EURUSD指数 GBPUSD指数 15 30.10.2006 0:00 16 29.10.2006 23:00 16 29.10.2006 23:00 46 23.10.2006 0:00 47 22.10.2006 23:00 47 22.10.2006 23:00 77 16.10.2006 0:00 78 15.10.2006 23:00 78 15.10.2006 23:00 108 09.10.2006 0:00 109 08.10.2006 23:00 109 08.10.2006 23:00 139 02.10.2006 0:00 139 02.10.2006 0:00 140 01.10.2006 23:00 例えば、46-47小節。 2つ目のファイルでは 45 23.10.2006 4:00 23.10.2006 4:00 23.10.2006 4:00 46 22.10.2006 23:00 22.10.2006 23:00 23.10.2006 0:00 47 22.10.2006 23:00 22.10.2006 23:00 22.10.2006 23:00 48 20.10.2006 20:00 20.10.2006 20:00 20.10.2006 20:00 しかし、ここで問題なのは、3つの通貨の履歴に23.10.2006 00:00のバーが存在することです。すなわち、チャート上にあり、引用符のアーカイブにあるのです。 しかし、インジケーターにはないようです。 そして最後の仕掛けは、このバー上に縦線を 引こうとすると、次のバーに移ってしまうというものです。:о)縦線で印をつけようとしたが、うまくいかなかった。 Standard indicators override?! 100% winning EA,you can't ASCTrend system Forex Trader 2006.11.01 13:50 #30 写真にしていただけませんか?スクリーンショットです。頭の中でコラムを並べるのは大変です。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
さらに、その制限を回避する方法を見つけることも課題です。例えば、USDCHFのデータが到着するまでEURUSDのインジケータの再描画を禁止する。現在、次のようなバリエーションをテストしています。
しかし、それはMTがIndicatorCountedをどのように計算するかによります。ティック到着時間による場合は動作しませんが、バー再描画の事実による場合は動作します。見てみよう。
Open[1]EURUSD H1 is 1.2755
Open[1] USDCHF H1 is 1.2443
EURに 新しい1時間バーが現れ、フランにはまだ 何も変化していない。アルゴイトムは何をするのですか?
さらに、その制限を回避する方法を見つけることも課題です。例えば、USDCHFのデータが到着するまでEURUSDのインジケータの再描画を禁止する。現在、次のようなバリエーションをテストしています。
しかし、ここでは、MTがIndicatorCountedをどのように計算するかにすべてがかかっています。ティックの到着時間による場合は動作しませんが、バーの再描画の事実による場合は動作します。見てみよう。
ストップ、ストップここで、あなたが書くのは:
オンライン作業ということで、今度はテスターに飛び火したわけですね。そんな暇はない。
Open[1] USDCHF H1 は1.2443。
ユーロに 新しい時間足が表示され、フランクにはまだ 何も変化して いません。アルゴイトムは何をするのですか?
はい、おっしゃるとおりです。バーの数ではなく、時間を見なければならない。
テスターはありません。オンラインのみ。
ドロップダウンを見られるように、バーの一覧の2番目のファイルに出力しました。
アルパリではない他の2つの証券会社(MIG、FIBO)のEURGBP 4Hで実行しています。
写真はどちらもほぼ同じですが、ここではMIGの例を紹介します。
EURGBP指数 EURUSD指数 GBPUSD指数
15 30.10.2006 0:00 16 29.10.2006 23:00 16 29.10.2006 23:00
46 23.10.2006 0:00 47 22.10.2006 23:00 47 22.10.2006 23:00
77 16.10.2006 0:00 78 15.10.2006 23:00 78 15.10.2006 23:00
108 09.10.2006 0:00 109 08.10.2006 23:00 109 08.10.2006 23:00
139 02.10.2006 0:00 139 02.10.2006 0:00 140 01.10.2006 23:00
例えば、46-47小節。
2つ目のファイルでは
45 23.10.2006 4:00 23.10.2006 4:00 23.10.2006 4:00
46 22.10.2006 23:00 22.10.2006 23:00 23.10.2006 0:00
47 22.10.2006 23:00 22.10.2006 23:00 22.10.2006 23:00
48 20.10.2006 20:00 20.10.2006 20:00 20.10.2006 20:00
しかし、ここで問題なのは、3つの通貨の履歴に23.10.2006 00:00のバーが存在することです。すなわち、チャート上にあり、引用符のアーカイブにあるのです。
しかし、インジケーターにはないようです。
そして最後の仕掛けは、このバー上に縦線を 引こうとすると、次のバーに移ってしまうというものです。:о)縦線で印をつけようとしたが、うまくいかなかった。