初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 833

 
Vladimir Karputov:

まず、明確に策定すること。

  • 建玉の条件
  • 終止符条件

買いポジションを開く例での主な条件(売りポジションの場合-ミラー)

  1. ファストストカスティックラインがスローストカスティックラインを上方にクロスする
  2. 買いポジションがある場合、新しいシグナル(上記参照)で、新しい取引の開始価格が最後のオープンポジションの開始価格より所定のポイント数(例えば30ポイント)高い場合にのみ取引が開始される、という条件を追加する必要があるのです。

ポジションを決済する(買う)には、両方の条件を満たす必要があります。

  1. スローストキャスティクスラインが80ストキャスティクスレベルを上から下へクロスする
  2. を追加する必要があります - これは、以前に開いた各ポジションの2番目のクロス(上記のポイントを参照してください)です。
スロー(赤)ストキャスティクスラインが80レベルを下向きにクロスしているため、トレードを閉じるための2つのシグナルが赤いクロスでマークされています。しかし、2回目のシグナル/クロスで初めて取引が終了します。


 
gastinets:

買いのオープニング(ミラーリング売りの場合)を例に、ポジションを開くための基本的な条件を説明します。

  1. ファストストカスティックラインがスローストカスティックラインを下から上へクロスさせる
  2. 買いポジションがある場合、新しいシグナル(上記参照)で、新しいポジションの開始価格が最後のオープンポジションの価格より所定のポイント数(例えば30ポイント)高い場合にのみポジションが開かれる、という条件を追加する必要があるのです。

***


ポジションを建 てるための条件を見逃したようです。インジケータがどの範囲にあるべきか(またはインジケータがあるべき上下のレベル)...。

 
Vladimir Karputov:

ポジションを持つ ための条件である、インジケータがどの範囲にあるか(あるいはインジケータがどのレベルより上か下か)を見逃していたようです・・・。

単純化するためにレベルを下げれば)、つまりストキャスティクスのレベルはオープニングには重要ではない

 
gastinets:

単純化するためにレベルを下げれば)、つまりストキャスティックレベルはオープニングに重要ではない

ストキャスティックエキスパートアドバイザー、インデントポジション」の ような別のトピックに移動できないでしょうか。

 

予定を変更しよう。

新しいトピックを作成しますか?

 
gastinets:

レッツゴー

新しいトピックを立てるべきか、それともあなたが立てるべきか?

スレッドを作成してください:自動売買システム

 
このトピックに関連しないコメントは、「MQL4 MT4 MetaTrader 4初心者からの質問」に移動しました。
 
Vladimir Karputov:

エキスパートアドバイザーで、CLOSEのしきい値を100に設定し、シグナルの重みを0.5にすることで、よりシンプルにできると思います。


ありがとうございました。効いているようです!

 
何が問題なのか説明してください。この関数は、すべてのオープンポジションに 目を通し、指定されたマジックナンバーを持つポジションの数をカウントすることになっています。しかし実際には、同じチケットとマジックナンバーを持つ別のEAによって開かれたリスト全体から1つだけを選択するので、カウントは常に=0です。
int OpenPositions()//проверка открытых позиций
  {
   int count=0;
   for(int z=PositionsTotal()-1; z>=0; z --)
     {
      if(!PositionSelect(_Symbol))
        {
         Print(__FUNCSIG__" позиция не выбрана ",GetLastError()); continue;
        }
      long  ticket = PositionGetInteger(POSITION_TICKET);
            Print(__FUNCSIG__" ТИКЕТ ", IntegerToString(ticket));
      ulong myMN=PositionGetInteger(POSITION_MAGIC);
            Print(__FUNCSIG__" МАГИК ", IntegerToString(myMN));
      if(myMN==Magic)
            count++;
     }
   return(count);
  }
理由: