エラー、バグ、質問 - ページ 379 1...372373374375376377378379380381382383384385386...3185 新しいコメント --- 2011.04.30 23:32 #3781 Graff: に意味があるのでしょうか?rates_total を BarsCalculated(ich) に置き換える?そんなことはないだろう。どちらかというと、バッファの準備をするためのサービススタブといったところでしょうか...。 また、Copyは要求されたサイズではなく、計算されただけのデータを返します。また、秘密でなければ、どのような都市から来たのでしょうか? Dneprではありません。 Serge 2011.04.30 23:40 #3782 sergeev:ところで、本当に追加の関数を呼び出す必要はないのでしょうか?このライブラリは、RefreshとBufferResizeの両方を備えています。正常に機能するために必要なものだと思われます。また、どこにそうあるべきと書かれているのでしょうか?いろいろなバリエーションを試しました。ichi.Refresh(true); ichi.Refresh(false); ichi.RefreshCurrent(true); ichi.RefreshCurrent(false);何の効果も得られなかった。 Serge 2011.05.01 13:17 #3783 続き....iIchimoku インジケーターに不具合が発生しています。私のインジケータは、if(tenkan[i]>kijun[i])に応じて矢印を描くだけです。スクリーンショットにあるように、矢印が正しく描画されていません。完全なコードはファイル Ich_1_f.mq5 にあります。ただし、手動で計算した場合は、すべて正しく表示されますファイル Ich_1_ok.mq5 のフルコード ファイル: Ich_1_f.mq5 6 kb Ich_1_ok.mq5 6 kb Mykola Demko 2011.05.01 19:22 #3784 dllを書き込む :#define _DLLAPI extern "C" __declspec(dllexport) //+------------------------------------------------------------------+ //| адрес переменной double | //+------------------------------------------------------------------+ _DLLAPI int __stdcall GetPtrVar(double a){return((int)(&a));} //+------------------------------------------------------------------+ //| значение переменной double по адресу | //+------------------------------------------------------------------+ _DLLAPI double __stdcall GetValuePtr(int pointer){return(*(double*)pointer);}プラグを差し込んでください。#import "Projeckt1.dll" int GetPtrVar(double a); double GetValuePtr(int pointer); #importを呼び出す。void OnStart() { double var=153.25; Print("вложенный вызов = ",GetValuePtr(GetPtrVar(var))); int pointer=GetPtrVar(var); Print("вызов с сохранением адреса = ",GetValuePtr(pointer)); }を得ることができます。2011.05.01 18:09:12 Черновик 31 (EURUSD,H1) вызов с сохранением адреса = 5.560304580319136 e-287 2011.05.01 18:09:12 Черновик 31 (EURUSD,H1) вложенный вызов = 153.25 という2つの行がありますが、どちらも同じ値153.25を返すはずです。なぜ? Renat Fatkhullin 2011.05.01 20:14 #3785 Urain: なぜ? これは32ビット版、64ビット版のどちらでしょうか? Mykola Demko 2011.05.01 20:17 #3786 Renat: これは32ビット版、64ビット版のどちらでしょうか? 32 Renat Fatkhullin 2011.05.01 20:39 #3787 これは非常に簡単で、GetPtrVar(double a) 関数でスタックにある変数のコピーの アドレスを取得し、スタックメモリの散らばった部分を読み取ろうとするのです。1回目はGetValuePtrのクローズコールのため、汚染されていないスタックから読み取ることができましたが、その後の関数呼び出しで スタックは取り返しのつかないダメージを受けました。エラーはありません。 Документация по MQL5: Основы языка / Функции / Вызов функции www.mql5.com Основы языка / Функции / Вызов функции - Документация по MQL5 Mykola Demko 2011.05.01 20:45 #3788 Renat:それはとても簡単で、GetPtrVar(double a) 関数でスタックにある変数のコピーの アドレスを取り、スタックメモリの散らばった部分を読み取ろうとするのです。そう、まさに、どこかでそこを掘り下げないといけないと思ったんです。は、DLLに記述する必要があります。 GetPtrVar(double &a){return((int)(&a));} Vladimir Gomonov 2011.05.01 20:46 #3789 Renat:これは非常に簡単で、GetPtrVar(double a) 関数でスタックにある変数のコピーの アドレスを取得し、スタックメモリの散らばった部分を読み取ろうとするのです。1回目はGetValuePtrのクローズコールのため、汚染されていないスタックから読み取ることができましたが、その後の関数呼び出しで スタックは取り返しのつかないダメージを受けました。エラーはありません。私も気づきました。これが正しいやり方だと思います。#define _DLLAPI extern "C" __declspec(dllexport) //+------------------------------------------------------------------+ //| адрес переменной double | //+------------------------------------------------------------------+ _DLLAPI int __stdcall GetPtrVar(double & a){return((int)(&a));} //+------------------------------------------------------------------+ //| значение переменной double по адресу | //+------------------------------------------------------------------+ _DLLAPI double __stdcall GetValuePtr(int pointer){return(*(double*)pointer);}プラグラミング:#import "Projeckt1.dll" int GetPtrVar(double & a); double GetValuePtr(int pointer); #import President5 2011.05.01 21:27 #3790 Metatrader5の439ビルドでは、履歴品質インジケータが追加されました。M1やH4で始値や 全ティックでテストしていると、品質が51%になってしまうんです...。なぜ、どのように増やすのか?引用元はalpari demoです。 Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы www.mql5.com Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5 1...372373374375376377378379380381382383384385386...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
に意味があるのでしょうか?
rates_total を BarsCalculated(ich) に置き換える?
そんなことはないだろう。どちらかというと、バッファの準備をするためのサービススタブといったところでしょうか...。
また、Copyは要求されたサイズではなく、計算されただけのデータを返します。
また、秘密でなければ、どのような都市から来たのでしょうか?
ところで、本当に追加の関数を呼び出す必要はないのでしょうか?
このライブラリは、RefreshとBufferResizeの両方を備えています。正常に機能するために必要なものだと思われます。
また、どこにそうあるべきと書かれているのでしょうか?
いろいろなバリエーションを試しました。
何の効果も得られなかった。
続き....
iIchimoku インジケーターに不具合が発生しています。私のインジケータは、if(tenkan[i]>kijun[i])に応じて矢印を描くだけです。スクリーンショットにあるように、矢印が正しく描画されていません。
完全なコードはファイル Ich_1_f.mq5 にあります。
ただし、手動で計算した場合は、すべて正しく表示されます
ファイル Ich_1_ok.mq5 のフルコード
dllを書き込む :
プラグを差し込んでください。
を呼び出す。
を得ることができます。
という2つの行がありますが、どちらも同じ値153.25を返すはずです。
なぜ?
なぜ?
これは32ビット版、64ビット版のどちらでしょうか?
これは非常に簡単で、GetPtrVar(double a) 関数でスタックにある変数のコピーの アドレスを取得し、スタックメモリの散らばった部分を読み取ろうとするのです。
1回目はGetValuePtrのクローズコールのため、汚染されていないスタックから読み取ることができましたが、その後の関数呼び出しで スタックは取り返しのつかないダメージを受けました。
エラーはありません。
それはとても簡単で、GetPtrVar(double a) 関数でスタックにある変数のコピーの アドレスを取り、スタックメモリの散らばった部分を読み取ろうとするのです。
そう、まさに、どこかでそこを掘り下げないといけないと思ったんです。
は、DLLに記述する必要があります。
これは非常に簡単で、GetPtrVar(double a) 関数でスタックにある変数のコピーの アドレスを取得し、スタックメモリの散らばった部分を読み取ろうとするのです。
1回目はGetValuePtrのクローズコールのため、汚染されていないスタックから読み取ることができましたが、その後の関数呼び出しで スタックは取り返しのつかないダメージを受けました。
エラーはありません。
私も気づきました。これが正しいやり方だと思います。
プラグラミング: