エラー、バグ、質問 - ページ 64

 

ところで、最近、記事、コードベース、MQL5.comサイト全体に対する素晴らしい検索機能がエディタに登場しました。


 

全てのバーで計算を行い、誤動作を見て、チャートの最後のデータを確認すると、時間足チャートではバーが1日に1回行くことがわかりました(ショック)。

は、すべての統計がめちゃくちゃです。


チャートを更新する方法とか?

 
関数ライブラリをコンパイルすると、次のようなエラーが発生するのですが、教えてください。
No exported function or entry point found               1       1
eh5ファイルが作成されないのですが、なぜでしょうか?
 
sergey1294:
関数ライブラリのコンパイル時にこのエラーが発生するのですが、原因は何でしょうか?

ライブラリの中身は大体こんな感じです。

//Function FunctionName
bool FunctionName() export
{
//----------------------------------------------------------------------------//
//Work variables
bool Reset;
//----------------------------------------------------------------------------//

//----------------------------------------------------------------------------//
return(Reset);
//----------------------------------------------------------------------------//
}
mq5では"export"の使用が義務付けられているが、mqhではそうであってはならない。
 
Interesting:

ライブラリの中身はこんな感じです。

mq5では "export "の使用が義務付けられているが、mqhではそうであってはならない。

ありがとうございます、ヘルプには全く載っておらず、Quaternaryにも載っていなかったと思います、mqhや関数ライブラリはどのように設計すれば正常にコンパイルできるのでしょうか。

P.S. ヘルプに記述がありました。

 
sergey1294:
ありがとうございます、この情報はヘルプには全くなく、Quaternaryではmqhと関数ライブラリの正常なコンパイルのための適切なレイアウトがなかったようです。

私もマイグレーションライブラリを作るときに、開発者に問い合わせたりして 苦労しました...。

追記

7ヶ月近く前のことで、まだすべてが正常に動作していたわけではないことをお断りしておきますが...。

 
sergey1294:

ありがとうございます!ヘルプにはこの情報が全くなく、Quaternaryにもmqhやfunctionライブラリがどのように正常にコンパイルできるように設計されているかは書かれていなかったと思います。

P.S. ヘルプに記述がありました。

見つけていただいたのはいいのですが、やはり「機能の書き出し」の項へのリンクを貼っておきます。

外部機能の説明

他のモジュールで定義された外部関数の種類を明示的に記述する必要がある。これを行わないと、コンパイル、リンク、プログラム実行時にエラーが発生する可能性があります。外部オブジェクトを記述 する場合は、 モジュール指定で#importキーワードを使用 します。

#import"user32.dll".
int MessageBoxW(int hWnd ,string szText,string szCaption,int nType);
int SendMessageW(int hWnd,int Msg,int wParam,int lParam);
#import"lib.ex5".
double round(double value);
#インポート

Importを使用すると、外部DLLやコンパイルされたEX5ライブラリから呼び出される関数を非常に簡単に記述することができます。EX5ライブラリは、library プロパティを持つコンパイル済みのEX5ファイルです。 EX5ライブラリからインポートできるのは、export修飾子で 記述された機能のみです。

こちらもご覧ください

オーバーロード仮想関数ポリモーフィズム

 
Urain:

全てのバーで計算を行い、誤動作を見て、チャートの最後のデータを確認すると、時間足チャートではバーが1日に1回行くことがわかりました(ショック)。

統計はすべて地獄に落ちろ


チャートの更新とかが必要なのでは?


もう少し掘り下げると、そのデータ区間の 分バーも「奇妙な」形で保存されていることがわかります。1日1本の分バーからなり、その分バーの高値と終値が日バーの高値と終値に対応しているのです。

これは、分足データがMetaTrader 5のすべての時間枠の基本構成要素であるためです。詳しくは、「データアクセスの整理」のセクションをご覧ください。

 
Rosh:

もう少し掘り下げると、そのデータ区間の 分も「奇妙な」形で保存されていることがわかります。1日は1本の分バーで構成され、その分バーの高値と終値が日バーの高値と終値に対応します。

これは、分足データがMetaTrader 5のすべての時間枠の基本構成要素であるためです。これについては、「データアクセスの整理」のセクションで詳しく説明しています。

はい、デモサーバーには1999年より古い分はありません。1993年から1999年までは、日数に代わって分単位のベースがあります。
 
Renat:
はい、デモサーバーには1999年より古い分はありません。1993年から1999年までは、分単位を日単位に置き換えています。

何か似ていると思ったのですが、分かりやすく教えていただきありがとうございます。

どのバーから本編が始まるかを決める関数を規定すればいいのです。

そうでないと、バーの大きさの期待値に大きな誤差が生じる可能性があります。

もちろんカスタムで作ることもできますが、内蔵されていれば(イマイチ)かなり助かります。

理由: