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

 
timmytrade #:

テスター - "サポートされていない充填モード"

3つの異なるブローカーで試しました。何が問題ですか?

SYMBOL_FILLING_FOKを SYMBOL_FILLING_IOCに置き換えてみて ください。

ありがとう、ウラジミール。

 
こんにちは、Samualさん。2010.01.01-2010.07.01と2017.01.01-2017.07.01のEUR/US H2通貨ペアでテストしました 素晴らしい。ハマー・ハンギングマン+ストキャスティクスよりも優れています。また、ThreeEMAインジケータよりも優れています。ありがとう。今、あなたのコードに取り組んでいます。
 
mirac baver ozturk #:

皆さんこんにちは(特に親愛なる筆者)

この記事に沿ってコーディングしました。とても楽しく、多くのことを学びました。

このような有益な記事を書いてくれてありがとう。

しかし、問題があります。私のEAは注文を出しません。著者のコードをダウンロードしましたが、それも注文を出しませんでした。

この記事は13年前のものなので、コードはもう古くなっていると思います。どなたか教えてください。

私のコードは以下のファイルです。どなたかよろしくお願いします。

このコードはすでに動作しています。
 

正しいダウンロードは未翻訳の英語ページをご覧ください。

このページからダウンロード: 初心者向けMQL5エキスパートアドバイザー作成ステップバイステップガイド - MQL5 Articles

https://www.mql5.com/en/articles/100

 

皆さん;

この記事の一番下に、ダウンロードできる完全なコードmlq5があります。

私はダウンロードして機能をチェックしたところ、プログラムが誤ったアルゴリズムを持っていることがわかりました。

設定はEURUSD,M1,100USDで2025/01/01から2025/01/31までです。

最初の注文は売り注文で、その後多くの買い注文がある。

本来は1つの注文であるべきですが、165行目から発生しています。

現在注文があるかどうかをチェックするフラグは、2つのフラグ変数(Buy_opned,Sell_opened)に分かれている。

現在すでに売り注文がある場合は、216行目(Ordersend)で、現在売り注文があっても新たに買い注文を出す。

次のローソク足を待つ 172行目のステートメントのBuy_openフラグを再びオンに設定することはできません。なぜなら、最初の注文は売りで、2番目の注文は買いだからです。

そして、216行目(Ordersend)の 買い注文は、次のローソク足で再び発生し、お金がなくなるまで何度も買い注文が発生します。

チャートを見てください。



注文リストを見る。


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

Niwath Jeamphue.

 
Niwath Jeamphue #:

皆さんへ;

この記事の一番下に、彼はダウンロードするために完全なコードmlq5を持っています。

ダウンロードし、機能を確認したところ、プログラムが誤ったアルゴリズムを持っていることがわかりました。

設定はEURUSD,M1,100USDで2025/01/01から2025/01/31までです。

最初の注文は売り注文で、その後多くの買い注文があります。

コンセプトは1つの注文であるべきですが、165行目から発生しています。

現在、注文があるかどうかをチェックするフラグは、2つのフラグ変数(Buy_opned,Sell_opened)に分かれています。

もし現在すでに売り注文があれば、216行目(Ordersend)で、現在売り注文があっても新たに買い注文を出す。

次のローソク足を待つ 172行目のステートメントのBuy_openフラグを再びオンに設定することはできません。なぜなら、最初の注文は売りで、2番目の注文は買いだからです。

そして、216行目(Ordersend)の 買い注文は、次のローソク足でも発生します。

チャートはこちら。



オーダーリストを見る


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

ニワス・ジーンフエ

ネッティング口座を使用していない限り、PositionSelect(_Symbol)を使用すべきではありません。

ヘッジ口座では、PositionGetTicket() または PositionSelectByTicket() を使用して、ポジションを正しく選択する必要があります。ドキュメントを確認してください。

 
Alain Verleyen #:

ネッティング口座を使用していない限り、PositionSelect(_Symbol)を使用すべきではありません。

ヘッジ口座では、PositionGetTicket() または PositionSelectByTicket() を使用して、ポジションを正しく選択する必要があります。ドキュメントを確認してください。

コメントありがとうございます。ただ、ソースコードはこの記事から最終的に完成したものであることを皆さんにお伝えしたいと思います。

https://www.mql5.com/ja/articles/download/100/my_first_ea.mq5

どうぞ、ご自分で試してみてください。

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

 
Niwath Jeamphue #:

コメントありがとう。ただ、皆さんにお伝えしたいのは、ソースコードはこの記事から最終的に完成したものだということです。

https://www.mql5.com/ja/articles/download/100/my_first_ea.mq5

ぜひ試してみてください。

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

この記事は2010年のもので、当時はFXも含めてMT5ではすべての口座がネッティング口座でした。

ヘッジ口座は2016年に導入されました:https://www.mql5.com/ja/articles/2299

MetaTrader 5 features hedging position accounting system
MetaTrader 5 features hedging position accounting system
  • 2016.03.21
  • www.mql5.com
In order to expand possibilities of retail Forex traders, we have added the second accounting system — hedging. Now, it is possible to have multiple positions per symbol, including oppositely directed ones. This paves the way to implementing trading strategies based on the so-called "locking" — if the price moves against a trader, they can open a position in the opposite direction.
 

Niwath Jeamphue #:

ぜひ試してみてください。

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

こんにちは。ご指摘の点、承知いたしました。添付ファイルでは、エキスパートアドバイザーのソースコードを変更し、どの口座(ネッティングまたはヘッジ)を使用しても、1つのポジションのみがオープンされるようにしました。

よろしく、ウラジミール。

ファイル:
 
MrBrooklin #:

こんにちは。ご指摘の点、承知いたしました。添付ファイルでは、エキスパートアドバイザーのソースコードを変更し、どの口座(ネッティングまたはヘッジ)を使用しても、ポジションが1つしかオープンされないようにしました。

よろしくお願いします。

ヘッジ口座、MrBrooklin 。ありがとうございます。しかし、私はそんなに多くの注文ではなく、注文のみを取得することを好む。

アルゴをオリジナルから変更しました。

買いと売りのオープンフラグを 消去

If (PositionSelect(_Symbol)==true)

もし それが買いポジションなら、買いフラグを立てる。

もし売りポジションで あれば 、売りフラグを立てる。

Zone1 :買いフラグが立っている状態で買い注文を出そうとする。

ゾーン2 売り 注文を 発注し、Sell_openedフラグを立てる。

新しいアルゴに変更。

If (PositionsTotal() > 0) return

買いと売りのオープン フラグを クリア

もし それが買いポジションなら、Buy_openedフラグを立てる。

もし売りポジションで あれば 、Sell_openedフラグを立てる。

Zone1 :買い注文を発注し、Buy_openedフラグを立てる。

ゾーン2 条件付で売り 注文を 発注し、!Sell_openedフラグを立てる。