MQLエキスパートへの質問 - ページ 16 1...9101112131415161718 新しいコメント Nestradamus 2014.02.16 13:19 #151 artmedia70: そんな記号があるのですか? ありがとうございました!!!こんな不具合は発見できなかっただろう...。教科書にくだらないことを書いて、見もしないで写しているだけ...。 khorosh 2014.02.17 14:08 #152 どこがエラーなのか、教えていただけませんか?なぜ結果が違うのでしょうか? //+------------------------------------------------------------------+ //| TestFr.mq4 | //| Copyright 2013, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- double FrUpz=0; double FrUp1 = GetFractal("0", 0, 1, MODE_UPPER); double FrUp2 = GetFractal("0", 0, 2, MODE_UPPER); double FrUp3 = GetFractal("0", 0, 3, MODE_UPPER); Print("# FrUp1=",FrUp1); Print("# FrUp2=",FrUp2); Print("# FrUp3=",FrUp3); for(int z=1;z<=3;z++) { FrUpz = GetFractal("0", 0, z, MODE_UPPER); Print("z=",z," FrUpz=",FrUpz); } } //+------------------------------------------------------------------+ //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru & khorosh | //+----------------------------------------------------------------------------+ //| Версия : 08.02.2009 | //| Описание : Возвращает фрактал по его номеру. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" или NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| nf - номер фрактала ( 0 - последний) | //+----------------------------------------------------------------------------+ double GetFractal(string sy="0", int tf=0, int nf=0, int mode=MODE_UPPER) { if (sy=="" || sy=="0") sy=Symbol(); double f=0; int i, k=iBars(sy, tf), kf; for (i=3; i<k; i++) { if(mode==MODE_LOWER){ f=iFractals(sy, tf, MODE_LOWER, i); if (f!=0) { kf++; if (kf>nf) return(iLow(sy,tf,i)); } } if(mode==MODE_UPPER){ f=iFractals(sy, tf, MODE_UPPER, i); if (f!=0) { kf++; if (kf>nf) return(iHigh(sy,tf,i)); } } } Print("GetFractalBar(): Фрактал не найден"); return(-1); } 結果 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=3 FrUpz=1.37083 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=2 FrUpz=1.37083 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=1 FrUpz=1.37104 2014.02.17 19:56:38.828 TestFr EURUSD,M15: # FrUp3=1.37056 2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp2=1.37162 2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp1=1.37083 Victor Nikolaev 2014.02.17 15:48 #153 khorosh: どこがエラーなのか、教えていただけませんか?なぜ結果が違うのでしょうか? 結果 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=3 FrUpz=1.37083 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=2 FrUpz=1.37083 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=1 FrUpz=1.37104 2014.02.17 19:56:38.828 TestFr EURUSD,M15: # FrUp3=1.37056 2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp2=1.37162 2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp1=1.37083 制御を容易にするために,この関数はバー番号を返すように少し修正されています //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru & khorosh | //+----------------------------------------------------------------------------+ //| Версия : 08.02.2009 | //| Описание : Возвращает фрактал по его номеру. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" или NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| nf - номер фрактала ( 0 - последний) | //+----------------------------------------------------------------------------+ double GetFractal(string sy="0",int tf=0,int nf=0,int mode=MODE_UPPER) { if(sy=="" || sy=="0") sy=Symbol(); double f=0; int i,k=iBars(sy,tf),kf; for(i=3; i<k; i++) { if(mode==MODE_LOWER) { f=iFractals(sy,tf,MODE_LOWER,i); if(f!=0) { kf++; // if(kf>nf) return(iLow(sy,tf,i)); if(kf>nf) return(i); } } if(mode==MODE_UPPER) { f=iFractals(sy,tf,MODE_UPPER,i); if(f!=0) { kf++; // if(kf>nf) return(iHigh(sy,tf,i)); if(kf>nf) return(i); } } } Print("GetFractalBar(): Фрактал не найден"); return(-1); } //+------------------------------------------------------------------+ 結果 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=3 FrUpz=9.0 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=2 FrUpz=9.0 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=1 FrUpz=13.0 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp3=24.0 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp2=17.0 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp1=13.0 Victor Nikolaev 2014.02.17 15:51 #154 全変数の明示的な初期化機能を追加 double GetFractal(string sy="0",int tf=0,int nf=0,int mode=MODE_UPPER) { if(sy=="" || sy=="0") sy=Symbol(); double f=0; int i=0,k=iBars(sy,tf),kf=0; for(i=3; i<k; i++) { if(mode==MODE_LOWER) { f=iFractals(sy,tf,MODE_LOWER,i); if(f!=0) { kf++; // if(kf>nf) return(iLow(sy,tf,i)); if(kf>nf) return(i); } } if(mode==MODE_UPPER) { f=iFractals(sy,tf,MODE_UPPER,i); if(f!=0) { kf++; // if(kf>nf) return(iHigh(sy,tf,i)); if(kf>nf) return(i); } } } Print("GetFractalBar(): Фрактал не найден"); return(-1); } 結果 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=3 FrUpz=24.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=2 FrUpz=17.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=1 FrUpz=13.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp3=24.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp2=17.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp1=13.0 開発者に見せる必要がある。 機能がおかしい Eugene Krasnov 2014.02.17 17:10 #155 というコードに気づきました。Print(ChartID()," ",ChartGetInteger(ChartID(),CHART_HEIGHT_IN_PIXELS,0))する。がインジケータに置かれると、おかしな結果になります。例えば、インジケータがリセットされたチャートタブを開いている場合、メインチャートウィンドウの高さの結果は正しいです。しかし、「ネイティブ」チャートから離れると、なぜか結果が75になり(もちろん、他のケースでは結果は異なるかもしれません)、チャートIDの値は同じままです。ネイティブ」グラフに戻すと、高さの数値が正しくなります。開発者や "知る人ぞ知る "人たちに、この特殊性が何なのかを説明してくれるよう、大いに要望します。本当に意図した通りなのか!信じられない! この場合、どのタブが開かれていても、ネイティブチャートの正しい高さの値を与えるコードを提案してください。 khorosh 2014.02.17 19:04 #156 Vinin: 全変数の明示的な初期化機能を追加 結果 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=3 FrUpz=24.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=2 FrUpz=17.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=1 FrUpz=13.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp3=24.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp2=17.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp1=13.0 開発者に見せる必要がある。 機能がおかしい 私の質問に気を遣っていただき、ありがとうございました。原因は、関数内の2つの変数が明示的に初期化されていなかっただけだと判明した。キムの全機能に目を通し、修正する必要がありますね。 Рита 2014.02.18 06:19 #157 こんにちは。 EAコードには、I.Kimのf-i.それは、「マウントされた」ライブラリの呼び出しを含むものです。外部パレメータ」以降のコードが提供されます。 //-- Подключаемые модули -- #include <stderror.mqh> #include <stdlib.mqh> しかし、偶然にも(mt4の同じアップデートの後 - EAが動作しない)私は "EAのプロパティ "ウィンドウ、 "依存 "タブで奇妙なエントリに気づいた。 このエラーの意味と修正方法(両方のライブラリがIncludeフォルダに残っている場合)を教えていただけませんか?Librariesフォルダーは何の関係があるのですか? Alexey Subbotin 2014.02.18 06:47 #158 Rita:こんにちは。EAコードには、I.Kimのf-i.それは、「マウントされた」ライブラリの呼び出しを含むものです。外部パレメータ」以降のコードが提供されます。しかし、偶然にも(mt4の同じアップデートの後 - EAが動作しない)私は "EAのプロパティ "ウィンドウ、 "依存 "タブで奇妙なエントリに気づいた。このエラーの意味と修正方法(両方のライブラリがIncludeフォルダに残っている場合)を教えていただけませんでしょうか?Librariesフォルダーは何の関係があるのですか? stderror.mqh は、Libraries フォルダにある stdlib.ex4 ライブラリの ErrorDescription関数を ソースと一緒にインポートして います。このファイルがあるかどうかを確認し、ない場合は他の端末から取得してください。 Рита 2014.02.18 07:19 #159 どちらのフォルダ(IncloudとLibraries)にもstdlibのソースが含まれています。念のため、Incloudのフォルダからアッドコピーしてみました。 しかし、「依存関係」タブには上記のようなエラーが表示されたままです。これらの関数の呼び出しを何らかの方法で変更するとか。の代わりに。 //-- Подключаемые модули -- #include <stderror.mqh> #include <stdlib.mqh> 他の方法で通話を設定しますか? それとも、今から最新版のmt4でI.Kimの機能を使うことは不可能なのでしょうか? Vitalie Postolache 2014.02.18 07:57 #160 Rita: どちらのフォルダ(IncloudとLibraries)にもstdlibのソースが含まれています。念のため、Incloudのフォルダからアッドコピーしてみました。 しかし、「依存関係」タブには上記のようなエラーが表示されたままです。これらの関数の呼び出しを何らかの方法で変更するとか。の代わりに。 他の方法で通話を設定しますか? それとも、今から最新版のmt4でI.Kimの機能を使うことは不可能なのでしょうか? Librariesフォルダにstdlib.ex4という実行ファイルがあることを確認してください(Kimさんのものではないみたいですが、納品時の標準ファイルです)。 あるいは、キム関数がそこから何を取り出すかを見て、何が問題かを解決してください。 1...9101112131415161718 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そんな記号があるのですか?
どこがエラーなのか、教えていただけませんか?なぜ結果が違うのでしょうか?
結果
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=3 FrUpz=1.37083
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=2 FrUpz=1.37083
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=1 FrUpz=1.37104
2014.02.17 19:56:38.828 TestFr EURUSD,M15: # FrUp3=1.37056
2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp2=1.37162
2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp1=1.37083
どこがエラーなのか、教えていただけませんか?なぜ結果が違うのでしょうか?
結果
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=3 FrUpz=1.37083
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=2 FrUpz=1.37083
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=1 FrUpz=1.37104
2014.02.17 19:56:38.828 TestFr EURUSD,M15: # FrUp3=1.37056
2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp2=1.37162
2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp1=1.37083
制御を容易にするために,この関数はバー番号を返すように少し修正されています
結果
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=3 FrUpz=9.0
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=2 FrUpz=9.0
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=1 FrUpz=13.0
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp3=24.0
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp2=17.0
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp1=13.0
全変数の明示的な初期化機能を追加
結果
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=3 FrUpz=24.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=2 FrUpz=17.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=1 FrUpz=13.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp3=24.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp2=17.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp1=13.0
開発者に見せる必要がある。 機能がおかしい
というコードに気づきました。
Print(ChartID()," ",ChartGetInteger(ChartID(),CHART_HEIGHT_IN_PIXELS,0))する。
がインジケータに置かれると、おかしな結果になります。例えば、インジケータがリセットされたチャートタブを開いている場合、メインチャートウィンドウの高さの結果は正しいです。
しかし、「ネイティブ」チャートから離れると、なぜか結果が75になり(もちろん、他のケースでは結果は異なるかもしれません)、チャートIDの値は同じままです。
ネイティブ」グラフに戻すと、高さの数値が正しくなります。
開発者や "知る人ぞ知る "人たちに、この特殊性が何なのかを説明してくれるよう、大いに要望します。本当に意図した通りなのか!信じられない!
この場合、どのタブが開かれていても、ネイティブチャートの正しい高さの値を与えるコードを提案してください。全変数の明示的な初期化機能を追加
結果
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=3 FrUpz=24.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=2 FrUpz=17.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=1 FrUpz=13.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp3=24.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp2=17.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp1=13.0
開発者に見せる必要がある。 機能がおかしい
こんにちは。
EAコードには、I.Kimのf-i.それは、「マウントされた」ライブラリの呼び出しを含むものです。外部パレメータ」以降のコードが提供されます。
しかし、偶然にも(mt4の同じアップデートの後 - EAが動作しない)私は "EAのプロパティ "ウィンドウ、 "依存 "タブで奇妙なエントリに気づいた。
このエラーの意味と修正方法(両方のライブラリがIncludeフォルダに残っている場合)を教えていただけませんか?Librariesフォルダーは何の関係があるのですか?
こんにちは。
EAコードには、I.Kimのf-i.それは、「マウントされた」ライブラリの呼び出しを含むものです。外部パレメータ」以降のコードが提供されます。
しかし、偶然にも(mt4の同じアップデートの後 - EAが動作しない)私は "EAのプロパティ "ウィンドウ、 "依存 "タブで奇妙なエントリに気づいた。
このエラーの意味と修正方法(両方のライブラリがIncludeフォルダに残っている場合)を教えていただけませんでしょうか?Librariesフォルダーは何の関係があるのですか?
stderror.mqh は、Libraries フォルダにある stdlib.ex4 ライブラリの ErrorDescription関数を ソースと一緒にインポートして います。このファイルがあるかどうかを確認し、ない場合は他の端末から取得してください。
どちらのフォルダ(IncloudとLibraries)にもstdlibのソースが含まれています。念のため、Incloudのフォルダからアッドコピーしてみました。
しかし、「依存関係」タブには上記のようなエラーが表示されたままです。これらの関数の呼び出しを何らかの方法で変更するとか。の代わりに。
他の方法で通話を設定しますか?
それとも、今から最新版のmt4でI.Kimの機能を使うことは不可能なのでしょうか?
どちらのフォルダ(IncloudとLibraries)にもstdlibのソースが含まれています。念のため、Incloudのフォルダからアッドコピーしてみました。
しかし、「依存関係」タブには上記のようなエラーが表示されたままです。これらの関数の呼び出しを何らかの方法で変更するとか。の代わりに。
他の方法で通話を設定しますか?
それとも、今から最新版のmt4でI.Kimの機能を使うことは不可能なのでしょうか?
Librariesフォルダにstdlib.ex4という実行ファイルがあることを確認してください(Kimさんのものではないみたいですが、納品時の標準ファイルです)。
あるいは、キム関数がそこから何を取り出すかを見て、何が問題かを解決してください。