素晴らしい...
この記事は別の 記事の一部を抜粋したものである。効率的に動作させるために何もしていない。指標や時系列のキャッシュもない。High[i]、Low[i]などがない。iCustomもない。
まったく違うものが出てくることが予想された。さらに、Expert Advisorsのファーストフードが、ソースにすらないのでは意味がない。
for(int i=PositionsTotal()-1;i>=0;i--) if(m_position.SelectByIndex(i)) // プロパティにさらにアクセスするために、インデックスによって位置を選択する。 if(m_position.Symbol()==m_symbol.Name()) { //--- ロング・ポジションを建てる if(m_position.PositionType()==POSITION_TYPE_BUY) { //--- 閉鎖すべきか? if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious && MacdCurrent>(MACDCloseLevel*m_adjusted_point)) { //--- ポジションを閉じて終了する if(!m_trade.PositionClose(m_position.Ticket())) Print("PositionClose error ",m_trade.ResultRetcodeDescription()); return; } //--- トレーリング・ストップをチェックする if(TrailingStop>0) { if(m_position.PriceCurrent()-m_position.PriceOpen()>m_adjusted_point*TrailingStop) { if(m_position.StopLoss()<m_symbol.Bid()-m_adjusted_point*TrailingStop) { //--- 位置を修正して終了する if(!m_trade.PositionModify(m_position.Ticket(), m_symbol.NormalizePrice(m_position.PriceCurrent()-m_adjusted_point*TrailingStop), m_position.TakeProfit())) Print("PositionModify error ",m_trade.ResultRetcodeDescription()); return; } } } } if(m_position.PositionType()==POSITION_TYPE_SELL) { //--- 閉鎖すべきか? if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDCloseLevel*m_adjusted_point)) { //--- ポジションを閉じて終了する if(!m_trade.PositionClose(m_position.Ticket())) Print("PositionClose error ",m_trade.ResultRetcodeDescription()); return; } //--- トレーリング・ストップをチェックする if(TrailingStop>0) { if((m_position.PriceOpen()-m_position.PriceCurrent())>(m_adjusted_point*TrailingStop)) { if((m_position.StopLoss()>(m_symbol.Ask()+m_adjusted_point*TrailingStop)) || (m_position.StopLoss()==0.0)) { //--- 位置を修正して終了する if(!m_trade.PositionModify(m_position.Ticket(), m_symbol.NormalizePrice(m_symbol.Ask()+m_adjusted_point*TrailingStop), m_position.TakeProfit())) Print("PositionModify error ",m_trade.ResultRetcodeDescription()); return; } } } } }
- 2010.05.11
- Sergey Pavlov
- www.mql5.com
典型的なMQL4-caの例です - 読まず、コードも見ず、フラグを立てて表彰台に直行です :) 。
コメントする前に、記事の本文だけでなく、添付されたソース(IndicatorsMQL4.mqhとIndicatorsMQL5.mqhの分析を含む)もすべて読みました。
コメントする前に、記事の本文だけでなく、添付されたソース(IndicatorsMQL4.mqhとIndicatorsMQL5.mqhの分析を含む)もすべて読んでください。
MQL5Include∕SimpleCall∕Series.mqhファイルに目を通した(見逃した)はずです。
キャッシュについて - これらはあなたの個人的な推測(期待)です。
この記事は、「私のファイルを差し込めば、MQL4のスタイルで 無心に作業を続けることができます」とMQL4ユーザーを欺くことを意図したものではなく、インジケーターのアドレスにおける古いアプローチをMQL5に移行する方法を示したものです。
MQL5Include\SimpleCall\Series.mqhファイルを見落としたに違いない。
よく読んで。High[i]などはどこにありますか?
キャッシュについて - これらはあなたの個人的な推測(期待)です。
この 記事は、「私のファイルを差し込めば、MQL4のスタイルで無心に作業を続けることができます」と MQL4ユーザーを欺くことを意図したものではなく、インジケーターのアドレスにおける古いアプローチをMQL5に移行する方法を示したものです。
iCustomは?あなたは軽率にも他の記事の一部をコピペしそうになり、パフォーマンスに失敗した。実際、これはMQL4スタイルのコストであり、あなたの実装ではないとユーザーを欺いている。
ここには、MQL4スタイルがいくつかの問題においてMQL5より劣っていないことを示すパフォーマンス測定値がある。インジケーターでも同じことができる。
こちらは時系列のリアライゼーションの1つ です。作者が努力し、パフォーマンスを重視し、MQL4スタイルから脱却しようとしているのがわかるだろう(必要であれば、このアイデアを改良することもできる)。
- 投票: 25
- 2017.05.25
- nicholishen
- www.mql5.com
よく読んでください。High[i]などはどこにあるのか?
iCustomはどこにあるのか?あなたは軽率にも他の記事の一部をコピペしそうになり、パフォーマンスに失敗してしまった。実際、これはMQL4スタイルのコストであって、あなたの実装のコストではないとユーザーを欺いている。
ここには、MQL4スタイルがいくつかの問題においてMQL5より劣っていないことを示すパフォーマンス測定値がある。インジケーターでも同じことができる。
こちらは時系列のリアライゼーションの1つ です。作者がパフォーマンスを重視し、MQL4スタイルから少し離れていることがわかるだろう(その方が作者にとって都合がいいのだ)。
MQL5に早く慣れるために、シリーズのiXXXX関数だけが残されている。それらはより完全なパラメーター(シンボル、時間枠、シフト)を持っているので、より高度に特殊化されたHigh[]などを簡単に置き換えることができる。目標は、ユーザーがMQL4を無心に使い続けることではなく、MQL4のコードを少しずつ書き換えることだ。
iCustomは計画にも入っていなかった。
キャッシュについて - これは一般向けの記事には絶対にありません。
追記:ところで、ユーザーからのフィードバックによって、High[]や同様の関数が必要なのか、それともiXXXXシリーズがなくてもやっていけるのかが明らかになるだろう。
目標は、ユーザーがMQL4を無心に使い続けることではなく、MQL4のコードを少しずつ書き直すことだ。
MQL4スタイルは純粋なMQL5だ。SBよりも悪いものではない。想像で風車と戦うな。StandardLibrary-Styleとは戦わない。
iCustomは計画にもなかった。
キャッシュについて - 一般向けの記事には絶対にありません。
インジケータに関するMT4とMT5のトピックでは、標準インジケータが最も議論されていません。ほとんどの人がカスタムインジケータについて話していました。標準的なインジケータは何十年も前に書かれたものであり、取り返しのつかないほど時代遅れです。古いインジケーターを使って先進的なMQL5で作業するのは奇妙に見えます。
キャッシュについては、記事の中で説明されるべきではなかったが、MQL4スタイルとの関連で結論の客観性を取ったのだから、行うべきだった。
複数のインジケーターに同時にアクセスすると、テスト速度が低下する;
追記:ところで、High[]や同様の機能が必要なのか、それともiXXXXシリーズは省いていいのか、ユーザーのフィードバックでわかるだろう。
コメントという形で何も言わなくても、投票をして結果を見てください。Bid/Ask変数のような単純なものでも同様です。
この記事は「MQL4表現を保存しようとするコードを書けない方法」と呼ぶべきだ。
漏れたハンドル(なぜインジケーター・ハンドルを閉じるのか)と驚くべきオーバーヘッド(インジケーターを再作成しようとすると、インジケーター・マネージャーの中に落ちる)を伴うハードな恐怖。そして十分な数の人が、見もせず理解もせずにそれをコピーしてしまいます。
その上、インジケータから1つの値を抽出するのは非効率的です。
私は記事を完全に読み、コードにも十分に目を通しました。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 トレーダーのライフハック: インジケーターで作られたファストフード はパブリッシュされました:
MQL5 に新たに切り替えた場合、この記事は役に立つでしょう。 まず、インジケーターデータとシリーズへのアクセスは、通常の MQL4 スタイルで行われます。 次に、このシンプルさを MQL5 に実装します。 すべての関数は、可能な限り明確であり、ステップバイステップのデバッグに最適です。
検証のためだけに "コメント " を実装しました。 ビジュアルモードで "MACD MQL4 style EA short.mq5" を起動し、インデックス #1 の足にカーソルを置く場合、テスターのタスクを確認することができます。
図1. テスター上の "MACD MQL4 style EA short.mh5"
作者: Vladimir Karputov