記事"MQL5でExpert Advisorを書くための初心者向けステップバイステップガイド"についてのディスカッション - ページ 7

 
Renat:

初期化されていない(あるいは不完全な)変数(特に構造体)を使うのは、プログラミングでは非常によくある間違いだ。

おいおい、これはロシア語のリソースで、(1)洗脳され、(2)感謝される唯一のリソースじゃないか :))

1.5年前から、変数は初期化されるべきであると知っていた。1.5年前から、私は意図的に「構造体型変数」という表現を使っていた。しかし、1.5年前から、私はMqltraderequest 型変数の別個の(必須)フィールドにのみ値を代入していた。リファレンス・マニュアルには、「必須フィールドは 各取引操作ごとに指定されるべきである」と書かれていたからだ...。

 
papaklass:
レナト、あなた(MQ)が「メモリと変数の扱い方」についての記事やシリーズを発表してくれるとうれしいです。一般的に、メモリと変数を扱う正しい方法は何でしょうか?メモリ消費量の多さが原因でチャンピオンシップでいくつかのEAが失格となった後、このような記事は適切でしょう。Roshはどこかのスレッドで、ユーザーは興味のある記事を注文するべきだと書いていましたが、私はこのスレッドを見つけられなかったので、ここに書きます。
そうですね、このトピックに関する記事を読むのは面白いでしょう。選手権で、なぜメモリを大量に使う専門家がいたのか、どうすればそのような状況を避けることができるのか、とても興味深い。私はそのような問題はありませんでしたが、すべてランダムです。なぜ僕には起こらないのかわからないけど、起こった場合の対処法を知りたいね。
 
まず、メモリ消費はインジケータの呼び出しに関係します。異なるシンボル/tpymframesに何十ものインジケータのハンドルを作成する前に、そのために何を支払うかを考えてください。補助的なインジケータのメモリ消費を抑えるという 記事と、失格者の一人である山中敦史(alohafx)のインタビューを読むことをお勧めします。
Интервью с Ацуси Яманака (alohafx) - Automated Trading Championship 2011
  • championship.mql5.com
Что общего между трейдингом, скайдайвингом, фьючерсами, Гавайями, переводами и шпионами? Мы тоже не знали, пока не пообщались с дисквалифицированным участником Ацуси Яманака (alohafx). Его кредо - ''Life is Good! - Жизнь прекрасна!'', и с этим трудно не согласиться. Было интересно узнать, что расстояние между разными континентами - не помеха в общении участников нашего Чемпионата.
 

S/Lを5(5pipsのはず)にする理由

次のようなことがあります。

ファイル:
Capture.PNG  8 kb
 
statarb:

S/Lを5(5pipsのはず)にする理由

次のようなことがあります。

取引リクエストを送信する前に、シンボルのストップレベル(SYMBOL_TRADE_STOPS_LEVEL)をチェックする必要があります。SL/TPは現在値からこの距離より近くてはなりません。このプロパティを取得するサンプル

int StopLevel_Distance=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
double SL=... // 計算によって新しいSLを得る
//--- 現在計算されているストップロス・レベルをチェックする
if(SL>SymbolInfoDouble(_Symbol,SYMBOL_ASK)-StopLevel_Distance*_Point) 
   SL=SymbolInfoDouble(_Symbol,SYMBOL_ASK)-StopLevel_Distance*_Point;
//SLの位置を修正する
 

しかし、SL も TP も実行されません。コンパイラの "Terminal "では、それらは "0.00 "または "0.0 "とリストされています。そして、「外部」から、つまりエディターでコードを変更せずにパラメータ 値を変更することはまだ成功していません。

それ以外はうまくいっています!コメントも大変参考になりました!

ありがとうございました、

ロカンBBS

.locan.BBS:

 
MetaQuotes:

新しい記事「初心者向けMQL5 Expert Advisorの書き方ステップバイステップガイド」を公開しました:

著者:olowsam

こんにちは、Olowsamです、

このステップバイステップのガイドをありがとうございます。いくつか質問がありますので、ご教示いただければ幸いです。

私はあなたの指導に忠実に従いましたが、望ましい結果を得ることができませんでした。まず、私はMeta Trader 5.00, Build 6.55 (6th June 2012)の最新版で作業していますが、いくつかの違いがあります。 1つ目は、MQL5ウィザードのテンプレートに、あなたの注意書きにあるようなオプションが追加されていることです。いずれにせよ、私はプログラムがあなたが説明した通りであることを確認しました。コンパイルしました。問題なし。エラーもありません。OnTickサブルーチンに、メモにあるように5つのデバッグ・ブレークポイントを挿入しました。緑の実行ボタンをクリックしても何も起こりません。プログラムの実行がこのポイントに到達しません。なぜですか?何が起こっているのでしょうか?デバッグ・ブレークポイントをOnInitサブルーチンの開始点、例えばadzHandle=iADX9Null,0,ADX_Period)行に挿入すると、これはOKです。デバッグSTEPタブが点灯し、このコントロールをOnInitサブの終わりまでシングルステップできる。しかし、その後はまた何もできない。要するに、OnTickサブに到達できないのです。何が起きているのでしょうか?これはMeta Traderシステムの動作における既知のバグなのでしょうか?どうすればこの問題を解決し、次に進むことができますか?

以上、私が経験した問題を説明し、何が起こっているのかがお分かりになり、お手伝いいただけることを願っています。

ありがとうございました。

よろしくお願いします。

Kishor

 

やあ、素晴らしい記事だね、

コードをすべて入力しながら進めたが、最後にコンパイルエラーは出なかった。メタトレーダー5/mql5システムを初めて使うにはいい練習になった。

グラフが上向きになるように最適化する必要があるかもしれませんが :D

ありがとう!

マイク

 

こんにちは、

この記事のコーディングスタイルはとても読みやすく、フォローしやすかったです。 もし差し支えなければ、このサンプルでトレイリングストップを実装する方法の例も教えていただけませんか?

ありがとうございました!

 
素晴らしいガイドをありがとう!