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

 
Alexey Viktorov:

テスターでの表示用?はい。必要なインジケータをすべて含むテンプレートを作成し、EA名またはテスター名で保存すると、これらの設定でテストが開かれます。

リアル口座とデモ口座のチャートで

 

ごあいさつ

誰かマキシム・ガットマンに連絡する方法を知っていますか?

トレーダー、自動売買システム開発者

 
odyn:

リアル口座とデモ口座のチャートで

ここでは、例えば、MACDを紹介します。

他は全部同じです。

 

こんにちは、アドバイスかリンクを投げてください。

オープンポジションの中から、ライフタイムが一定期間以上のものを選びたいのですが。

ポジションのオープン時刻と 現在時刻を正しく比較するにはどうしたらよいですか?

私はこの関数を投げ、どのような私は(少し経験)、時間を比較する方法を考えることはできません次を行うには?

//+------------------------------------------------------------------+
bool Selected_Positions_Time_Life(datetime time_life, int &array_base[][observations])
{
int n = 0;
int size = ArrayRange(array_base,0);

for(int i=0; i<size; i++)
{
   int index  = Arr_Position[i][0];
   int ticket = m_position.SelectByIndex(index);
   datetime tl = m_position.Time();
   datetime tc = TimeCurrent();
 //Вот тут наверное нужно сравнить tl и tc 
 //и если разница превышает time_life, то это наша позиция
}

return(n>0);
}
//+------------------------------------------------------------------+
 
Sergey Voytsekhovsky:

こんにちは、アドバイスかリンクを投げてください。

オープンポジションの中から、ライフタイムが一定期間以上のものを選びたいのですが。

ポジションのオープン時刻と 現在時刻を正しく比較するにはどうしたらよいですか?

この機能を作ったが、次に何をすればいいのか全く分からない(経験不足)、時間の比較はどうすればいいのか?

ループの中で、ポジションを選択し、そのチケットを取得します。

ulong posTicket = PositionGetTicket(i);

次に、ポジションの開始時刻を取得します

PositionGetInteger(POSITION_TIME)
を表示し、基準時間±と比較します。
 
Alexey Viktorov:

ループ内のポジションを選択し、チケットを入手することができます

そして、ポジションの開始時刻を取得します

そして、基準時間±と比較する。

ただ、この比較手順は、チケットの位置、開封の 時間とサーバーの時間で、私はそれを理解したと思う、私は比較することはできませんしてください投げる。コメントに目を通しましたが、日付が出るだけです。

 
Sergey Voytsekhovsky:

これはまさに比較の手順をお願いします、ポジションチケット、開店 時間とサーバー時間で私はそれを理解したと思います、私は比較することはできません。コメントに目を通しましたが、日付が出るだけです。

つまり、日付を比較するわけです。しかし、その矛盾を考えなければならない。開店時刻と基準時刻の差を許容偏差で比較するのがよいでしょう。

fabs(время_позиции - эталонное_время) < допустимого_отклонения // например 600 секунд
 
Alexey Viktorov:

だから、日付を比べてみてください。しかし、その矛盾を考えなければならない。開店時刻と基準時刻の差を許容偏差で比較するのがよいでしょう。

アレクセイ・ヴィクトロフ

だから、日付を比べてみてください。しかし、その矛盾を考えなければならない。開店時刻と基準時刻の差を公差で比較するのがよいでしょう。

了解です、ありがとうございます、早速パソコンの前で試してみます(今は携帯からです)。

 

こんにちは。

グラフの 線を時間でソートしたい。ちょっとした脚本を書いてみました。しかし、その結果は私が望むようなものではありません。

何が間違っているのか、ご指導ください。

void OnStart()
{
int      vlines            = 0;
string   vlines_name[];
string   vlines_name_sort[];
datetime tm[];

   vlines = ObjectsTotal(ChartID(),0,OBJ_VLINE);
   if(vlines < 20 * 2)
   {
      Print("вертикальных линий меньше необходимиого. (",vlines," < ",20 * 2,")");
      return;
   }
   ArrayResize(vlines_name,vlines);
   ArrayResize(vlines_name_sort,vlines);
   
   for(int i = 0; i < vlines; i++)
   {
      vlines_name[i] = ObjectName(ChartID(),i,0,OBJ_VLINE);
   }
   ArrayPrint(vlines_name);
   
   for(int i = 0, n = 0; i < 9000; i++)
   {
      ArrayFree(tm);
      CopyTime(Symbol(),Period(),i,1,tm);
      
      for(int a = 0; a < vlines - 1; a++)
      {
         datetime tml = (datetime)ObjectGetInteger(ChartID(),vlines_name[a],OBJPROP_TIME);
         if(tml == tm[0])
         {
            vlines_name_sort[n++] = vlines_name[a];
            break;
         }
      }
   }
   ArrayPrint(vlines_name_sort);
}

その結果

(GBPUSD,H6)     [ 0] "H6 Vertical Line 10771" "H6 Vertical Line 10884" "H6 Vertical Line 12743" "H6 Vertical Line 1371"  "H6 Vertical Line 14306"
(GBPUSD,H6)     [ 5] "H6 Vertical Line 16501" "H6 Vertical Line 17907" "H6 Vertical Line 20277" "H6 Vertical Line 23365" "H6 Vertical Line 28358"
(GBPUSD,H6)     [10] "H6 Vertical Line 28756" "H6 Vertical Line 29445" "H6 Vertical Line 30340" "H6 Vertical Line 31840" "H6 Vertical Line 32885"
(GBPUSD,H6)     [15] "H6 Vertical Line 33779" "H6 Vertical Line 34048" "H6 Vertical Line 38532" "H6 Vertical Line 38756" "H6 Vertical Line 39075"
(GBPUSD,H6)     [20] "H6 Vertical Line 39458" "H6 Vertical Line 39649" "H6 Vertical Line 40385" "H6 Vertical Line 41116" "H6 Vertical Line 4150" 
(GBPUSD,H6)     [25] "H6 Vertical Line 41900" "H6 Vertical Line 42820" "H6 Vertical Line 43071" "H6 Vertical Line 46245" "H6 Vertical Line 48196"
(GBPUSD,H6)     [30] "H6 Vertical Line 50258" "H6 Vertical Line 50374" "H6 Vertical Line 55171" "H6 Vertical Line 56003" "H6 Vertical Line 56400"
(GBPUSD,H6)     [35] "H6 Vertical Line 57565" "H6 Vertical Line 59075" "H6 Vertical Line 59881" "H6 Vertical Line 59969" "H6 Vertical Line 63122"
(GBPUSD,H6)     [40] "H6 Vertical Line 63540" "H6 Vertical Line 63904" "H6 Vertical Line 64359" "H6 Vertical Line 64420" "H6 Vertical Line 65200"
(GBPUSD,H6)     [45] "H6 Vertical Line 6695"  "H6 Vertical Line 7743"  "H6 Vertical Line 8707"  "H6 Vertical Line 9491"  "H6 Vertical Line 9662" 

(GBPUSD,H6)     [ 0] "H6 Vertical Line 46245" "H6 Vertical Line 39075" "H6 Vertical Line 40385" "H6 Vertical Line 55171" "H6 Vertical Line 31840"
(GBPUSD,H6)     [ 5] "H6 Vertical Line 63904" "H6 Vertical Line 6695"  "H6 Vertical Line 59075" "H6 Vertical Line 28358" "H6 Vertical Line 10884"
(GBPUSD,H6)     [10] "H6 Vertical Line 38532" "H6 Vertical Line 29445" "H6 Vertical Line 23365" "H6 Vertical Line 64420" "H6 Vertical Line 7743" 
(GBPUSD,H6)     [15] "H6 Vertical Line 30340" "H6 Vertical Line 39649" "H6 Vertical Line 38756" "H6 Vertical Line 34048" "H6 Vertical Line 42820"
(GBPUSD,H6)     [20] "H6 Vertical Line 64359" "H6 Vertical Line 50374" "H6 Vertical Line 14306" "H6 Vertical Line 48196" "H6 Vertical Line 57565"
(GBPUSD,H6)     [25] "H6 Vertical Line 20277" "H6 Vertical Line 41116" "H6 Vertical Line 12743" "H6 Vertical Line 50258" "H6 Vertical Line 41900"
(GBPUSD,H6)     [30] "H6 Vertical Line 17907" "H6 Vertical Line 4150"  "H6 Vertical Line 59881" "H6 Vertical Line 56400" "H6 Vertical Line 10771"
(GBPUSD,H6)     [35] "H6 Vertical Line 63540" "H6 Vertical Line 65200" "H6 Vertical Line 9491"  "H6 Vertical Line 16501" "H6 Vertical Line 63122"
(GBPUSD,H6)     [40] "H6 Vertical Line 32885" "H6 Vertical Line 1371"  "H6 Vertical Line 33779" null                     null                    
(GBPUSD,H6)     [45] null                     null                     null                     null                     null                    
 
Сергей Таболин:

こんにちは。

グラフの 線を時間でソートしたい。ちょっとした脚本を書いてみました。しかし、その結果は私が望むようなものではありません。

何が間違っているのか、ご指導ください。

その結果

論理的には、まず配列内のすべての行を収集する必要がある、私はすぐに二次元、よく、または配列構造を行うだろう、最初の次元で第二に、創造の時間を追加する - 行の名前。

1つの実行のためのループでは、配列を充填した後、ループの外側には、最初の次元、つまり、時間によって並べ替えられます。

その結果は2番目のループで印刷されます。

その結果、2つのサイクルとその間のソートを実現しました。

私が問題を正しく理解していれば、以上です :)

理由: