エキスパートアドバイザー - 雑多な質問 - ページ 22

 
Marco vd Heijden:

ツールタブの下にあるスタイラスを使ってください。
私はあなたが何を達成しようとしているのか分からないので、あなたが何をしたいのか推測しなければなりませんが、これは決して良いこと ではありません。
でも、ここにある例を見てください。
オブジェクト 自身が値を保持しているので、値を別の double にコピーする必要はありません。

まず最初に、コメントで正しい方法を教えていただきありがとうございます。
私は、Test.mq4ファイルで試していたため、大きな間違いを 犯しました。私はTest.mq4ファイルで試していたので、大きな間違いを犯しました。私は正しい方法を得ています。そのファイルの両方は非常に私のために異なっている。

はい、私はこの懸念の私の目標に到達することができるためにあなたの例を何回か試した後。しかし、私は、" HLine "(といくつかのグラフィカルな)オブジェクトの作成にOnChartEvent()を使用する必要があることを理解しました。
そして、OrderModify()で利益確定を行い、その利益確定は" HLine "オブジェクトに従えばよいのです。( 第一に、" HLine " は現在の利食い価格を取得し、第二に、利食いは " HLine " オブジェクトに従う - そして、私が " HLine " オブジェクトをドラッグしている間は OrderModify() は更新しないはずです )
というわけで、まずはOrderModify()について調べてみました。

もう一回、お手本を確認できそうな気がします。できるといいのですが。

Marco さん、いつもありがとうございます。

 

マルコさん、本当にありがとうございました。


私のOM機能にはいくつかの問題があり、それらは自分で解決しました。
というのも、私はテイクプロフィットを 変更したOM機能をテストしようとしているのです。

そこで、私はまだ新しい問題に直面していることをお伝えしたいと思います(現在、マーケットはクローズしています)。

#
私はすでに以下のコードの両方を試しました。しかし、私はそれらの間の任意の違いを見ていない。しかし、私はそれらの間の違いを見ませんでした。

// I learned this Calculation from thread of @Simon's
for ( i = OrdersTotal() - 1; i >= 0; i-- ){}

// This is from yours Mr. Marco
for ( i = OrdersTotal(); i >= 0; i-- ){}

#
私のEAスクリプトでは、以下のコードの7倍を使用しています。売りと買いの計算が2倍。そして、2倍のClose関数。OnChartEvent()とOnTick()でこれらを呼び出している。

for ( i = OrdersTotal() - 1; i >= 0; i-- )
  {
   if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
   if(closeothers==false && OrderSymbol()!=Symbol()) continue;
//...
  }



また、私は他の問題を持っていますが、私は自分自身でそれらを解決するために取り組んでいます。

よろしくお願いします。

 

ナンバリングは1ではなく0から始まる。

例えば、3つの注文があったとします。それらは

  • 0
  • 1
  • 2

ですから、これを使うべきでしょう。

for ( i = OrdersTotal() - 1; i >= 0; i-- ){}

そうしないと、最初のパス (i==3) で失敗し、次の反復処理に移行します。

すみません、2番目の質問が理解できません。

 

2つ目の質問について。

私は通常、すべてを1つのループに絞り込むことが多いのですが、もちろんいくつかを使うこともできます。

 
honest_knave:

そうでなくても大惨事ではありません。OrderSelectは最初のパス(i==3)で失敗し、次のイテレーションに移行します。

Marco vd Heijden です。

私は通常、すべてを1つのループに押し込むことが多いのですが、もちろん、複数のループを使用することもできます。

コメントありがとうございました。とても感謝しています。

 

この問題のために、私はすでに数時間を費やしましたが、それはどこから来るのか?
Q: それは何ですか?( 画像ファイルを添付します )

私はストップロスとテイクプロフィットを ドラッグするためにあなたの最も有用な例 " Stealth 4.mq4 " を使用しており、それは最新の金曜日には完全に機能していました。
マーケットがクローズした今、Journalウィンドウからそのメッセージが表示されています。OrderModify()のコードブロックを削除すると、そのメッセージは止まりました。

良い週末をお過ごしください。

ファイル:
 

マーケットが閉じた ときに注文を修正することができるので、論理的な種類です。

停止させるためには、もう少しコードが必要です。

 

Max Enrik: OrderModify()のコードブロックを削除すると、メッセージが停止します。
  1. これが私が推奨する理由です。
    1つのEAで複数の通貨を取引しないでください
    • 定義済みの変数は 使えない、テスターは 使えない、ポーリングしなければならない(OnTickではない)、など通常他の問題があります。
    • チャートペアのみを取引するようにコーディングしてください。必要なら他のペアを見ます。(Time[i] == iTime(otherPair,tf,i) always useiBarShift. と仮定しないでください。)
    • そして、他のペアを取引するために他のチャートにそれを置く。完了です。
  2. OnTickで1つのペア/チャートしか取引しないのであれば、問題は起きないはずです。
 

1つのEAで全ての通貨を取引することは全く可能です。

 
Marco vd Heijden: 1つのEAですべての通貨を取引することは完全に可能です。
そうでないとは言っていません。問題が多いから勧めないと言っただけです。1つのペア/チャートがすべてを単純化します。必要以上に物事を難しくしないでください。