初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 89

 
Alexey Kozitsyn:
それはやめたほうがいい。リソースを大きく消耗してしまうからです。また、ループせずに応答速度が速いことの何がいけないのでしょうか?
ありがとうございます。ただ、mql4の公式チュートリアルで例として挙げられているので、興味があるのです。通常の方法よりも、なんとなくうまくいくかもしれないと思ったのです。
 
LRA:
ティックとは、サーバーから新しいデータが到着することです。そして、到着後すぐに処理する必要があります。5msのディレイでループさせれば、ほとんどのティックがこのディレイの間に正確に来ることになります。従って、処理は0 ......だけ遅れます。5msです。
そう、そこには理屈があるのです。ただ、start()関数自体もそのループに時間を費やしており、おそらくその繰り返しで純粋なループとは異なり、何分の一秒かそれ以上を盗んでいるのではないかと思いました(一度に大きなデータセットを取得するためにサーバーへのアドレス指定が必要かもしれません)。内部機構を理解していないので気のせいかもしれませんが、この方法がmql4のチュートリアルに含まれているのには理由があるのです。
 
smart_man:
ありがとうございます。ただ、mql4の公式チュートリアルで例として挙げられているので、興味を持ちました。普通のやり方より、なんとなくうまくいくのかもしれないと思いました。
はい、しかしチュートリアルは多少古くなっています。もちろん、ないよりはましですが、同時にドキュメントに目を通し、start()などの関数が残っているかどうかをチェックするのは有効です。現在、EAではOnTick()ハンドラを使用するのがよいでしょう。
 

こんにちは。

 
こんにちは、USD/RUBの通貨ペア、最小スプレッド、最小スワップなど、手数料を含めて最も便利なブローカーを教えてください...?
 
kanybek06:
こんにちは、あなたはUSD / RUBの通貨ペアのための最も便利なブローカーを教えてもらえますか?

これから始めるのですから、誰でも大満足でしょう。インターネットで検索して、比較してみてください。コミュニケーションをとり、質問をする。答えが出るはずです。

ここでは、プログラミングやメタトレーダー取引プラットフォームに関する質問を取り上げています。

 

カウンターオーダーを同時にクローズする必要がある場合、どのような方法でクローズすればよいですか?

1)それぞれ個別に(手動またはTP/SLで)。

または

2) OrderCloseByとペアで(手動のみ)?

チュートリアルに書いてあるようにOrderCloseByでスプレッド保存は一回になるのでしょうか?DCはこのようなクローズを禁止しておらず、このスプレッドは還元されるのでしょうか?技術的にどのように確認すればよいのでしょうか?

ありがとうございます。

 
配列を操作するためのテンプレートクラスがあります。
#property strict
#include <ObjectVariables.mqh>
#include <Arrays\varQSort.mqh>
#include <Arrays\objQSort.mqh>

template<typename T1>
class ArrayList
{
   private:
      T1 array[];
      QuickSorts<T1> *qs;
      int size;
      int index;

   public:
      //прочие функции
      void QuickSort();//отсортировать массив
      //прочие функции
};
//+------------------------------------------------------------------+
//| Сортировка массива
template<typename T1>
void ArrayList::QuickSort()
{
   int idx = index;//сохранение положения индекса
   if(IsPointer(array[0])) // true - массив содержит указатели класса
      qs /*ошибка 2*/ = new ObjQSort<T1>();
   else
      qs /*ошибка 2*/ = new VarQSort<T1>();
   qs.Sort(array, 0, index);
   index = idx;
}

このテンプレートクラスでは、配列が複雑なデータ型を 格納できることを考慮して、ソートを実装する必要があります。例えば、こんな感じです。
ArrayList<PP*> *dde; // PP - класс

単純な型と複雑な型とで異なる関数を書いても、コンパイラは関数がデータ型によって厳密に区切られていることを理解せず、悪態をつき続ける。
'<' - 不正な操作 use ArrayList.mqh

そこで、インターフェイスを埋め込むことにしたのです。

#property strict
template <typename T1>
interface QuickSorts
{
   void Sort(T1 &array[], int beg, int end);
};
#property strict
#include <Arrays\QuickSorts.mqh>
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
template <typename T1>
class VarQSort : public /*ошибка 1*/ QuickSorts
{
private:

public:
   void Sort(T1 &array[], int beg, int end);
   VarQSort(){}
   ~VarQSort(){}
};
template <typename T1>
void VarQSort::Sort(T1 &array[], int beg,int end)
{
   //алгоритм функции
}
#property strict
#include <Arrays\QuickSorts.mqh>
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
template <typename T1>
class ObjQSort : public /*ошибка 1*/ QuickSorts
{
private:

public:
   void Sort(T1 &array[], int beg, int end){}
   ObjQSort(){}
   ~ObjQSort(){}
};

コンストラクトの全パートをコンパイルします。しかし、それを宣言しようとすると
ArrayList<PP*> *dde; // PP - класс
で、そのファイルをコンパイルすると、以下のようなエラーになります。

'クイックソート' - テンプレート不一致 varQSort.mqh /*error 1*/
'=' - 型の不一致 ArrayList.mqh /*error 2*/


この型の不一致を解消するには、コードのどこを修正すればよいのでしょうか?なぜ登場したのか、まったく理解できない。

追伸
'<' - 不正な操作 varQSort.mqh を使用します。
この構成でも私を悩ませているのです。私が解消したかったのは、まさにこのエラーなのです。でも、このエラーはわかるけど、この2つはわからない。
 
виталик:
こんにちは、それは明確な変更になりますので、時間または半時間に変換する方法のみ、一つの方法または別の方法で、インジケータPivotsDaily v2.mq4からリッピング整理するコードの一部を助けてください、事前にありがとうございました。

すでに1つのスレッドで書かれていますね。それで十分です。他者に群がる必要はないのです。
 
1.5年前に作成したEAが 動作し、すべて順調でしたので、アドバイスをお願いします。今までずっと使っていなかったが、今度はグラフにインストールできなくなった。何が原因かは誰にもわからない。MT4のアップデートが原因かも?