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

 
Aleksey Vyazmikin #:

コードベースには、もともとMT4で書かれ、MT5で書き直されたExpert Advisorやインジケーターがあります。

多くの点で、言語は似ています。理解したコードをMT5で書き換えるという課題を自分に課してください - そして、説明書やポータルの検索を積極的に利用してください - 記事も含めて、必ず答えが見つかります。

貴重なアドバイスをありがとうございました。差し支えなければ、4で使っていたExpert Advisor(indicatorではありません)が5で使えるようになったもの(最もシンプルなもので可能であれば)、もしくは4で使っていたEAそのものが5でも同じように使えるようになったもの(
)のリンクを送っていただけると勉強しやすいです。初心者のための取引操作は、取引クラスSTradeで開くのが一番簡単であることに気がつき、このクラスの助けを借りて注文や取引を開くこともできました。
しかし、注文を開く条件をつけたとたんに注文が開かなくなってしまいました。何がいけなかったのか教えてください。以下は、条件がないときに注文をオープンしたコードです。

#include<Trade\Trade.mqh>
 CTrade  trade;

void OnTick()
{
MqlDateTime time_now;  
if(time_now.hour==10||time_now.hour==11&&time_now.min==0)


trade.Buy(0.1);


}

この点がまだ理解できていません。BAY注文がオープンされると、カウンター注文CELによってクローズされるのは理解できた。というのも、SLとTPのサイズはどこにも指定していないし、注文をクローズする機能もまったく指定していないからです。私は、この情報が添付ファイルのどこか、つまりクラスか構造体のどこかに書かれているのではないかと疑っています。もしそうだとしたら、新規注文のパラメータを変更するために、この場所を見つける方法を教えてください。

ご協力ありがとうございました。

 
ANDREY #:

貴重なアドバイスをありがとうございました。
ー4でー5でー(ー(ー(ー)のー(ータ)ー(ー)ー(ー)ー(ー)ー(ー)ー(ータ)ー(ーー)ー(ーー)ー(ーーー)ー(ーーータ)I realised that trading operations for a beginner is easiest to open in the trading class STrade and I even managed to open orders and deals with the help of this class
But as soon as I conditioned the opening of an order, orders stopped opening, please tell me what I did wrong.以下は、条件がないときに注文をオープンしたコードです。

この点がまだ理解できていません。BAY注文がオープンされると、カウンター注文CELでクローズされるのは理解できた。、ー何ピップスでーでー注文をー決済ーというーというーというーコードはーどこでーどこでーこのーSL,TP,TP,などーこのー注文のー決済のー機能ーこの情報は添付ファイルのどこか、つまりクラスか構造体のどこかに書かれているのではないでしょうか。もしそうだとしたら、どのようにしてこの場所を見つけ、注文のパラメータを変更することができるでしょうか?

ご協力ありがとうございました。

私はソビエトの国で生まれたので、アドバイスしかできません。

検索してみてください。

私自身はまだ貿易業務のニュアンスをすべて学んだわけではありません。何年も前にフリーランスのクラスを注文し、それを少し修正して使っています。

 
Aleksey Vyazmikin #:

私はソビエトの国に生まれたので......。

私はソビエトの国に生まれたので......

私自身はまだ貿易業務のニュアンスをすべて学んだわけではありません。何年も前にフリーランスのクラスを注文し、それを少し修正して使っています。

了解です。貴重な情報をありがとう

 
ANDREY #:

貴重なアドバイスをありがとうございました。もし差し支えなければ、4で使っていたExpert Advisor(インジケーターではありません)が5で使えるようになったもの(最もシンプルなものでよければ)、もしくは4で使っていたEAそのものが5でも使えるようになったもののリンクを送っていただけないでしょうか。

最もシンプルなものはこちらです。soと呼ばれています。MQL5のコードとMQL4のコードを持っています。

Simple advisor
Simple advisor
  • www.mql5.com
Советник на отложенных ордерах
 
Alexey Viktorov #:

これが最もシンプルなものだ。これがその名前だ。MQL5とMQL4の両方のコードが含まれている。

ご協力ありがとうございました。

 
ANDREY #:

しかし、注文のオープンを条件にしたとたんに、注文が開かなくなってしまいました。以下は無条件で注文を出すコードです。

この点がまだ理解できていません。BAY注文がオープンされると、カウンター注文CELによってクローズされるのは理解できた。というのも、SLとTPのサイズはどこにも指定していないし、注文をクローズする機能もまったく指定していないからです。私は、この情報が添付ファイルのどこか、つまりクラスか構造体のどこかに書かれているのではないかと疑っています。もしそうなら、どのようにしてこの場所を見つけ、注文のパラメータを変更することができるでしょうか?

ご協力ありがとうございました。

MqlDateTime構造体を宣言しましたが、初期化して いません。

このように、10:00から1分間、各ティックで買いポジションをオープンします。そして11:00になると、さらに1分間買いポジションをオープンします。

//+------------------------------------------------------------------+
#include<Trade\Trade.mqh>
 CTrade  trade;
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlDateTime time_now;
   TimeCurrent(time_now);
   if((time_now.hour == 10 || time_now.hour == 11) && time_now.min == 0)
      trade.Buy(0.1);
  }
//+------------------------------------------------------------------+
このコードではポジションをクローズすることはできません。
 
Aleksandr Slavskii #:

構造体MqlDateTimeを宣言したが、初期化しなかったので、空かゴミになって いる。

このように、10:00から各ティックで買いポジションを1分間オープンします。そして11:00からさらに買いポジションを1分間オープンします。

このコードではポジションをクローズすることはできません。

ありがとうございました。あなたのおかげで、5をマスターするのがかなり進みました。このコードではポジションをクローズできないとおっしゃいますね。しかし、すべての条件を削除すると、ポジションはカウンター・オーダーCELによってオープンされ、クローズされます。では、どのようなコード・コマンドで注文をクローズするのですか?プログラムは、一定のポイント数の後、あるいは何らかのイベントが発生したときに、注文を正確に決済するためのデータをどこから入手するのでしょうか?どのようなルールで注文をクローズするのかも理解できません。

#include<Trade\Trade.mqh>
 CTrade  trade;

void OnTick()
{
trade.Buy(0.1);
}

また、BAY注文をクローズするために使用されるSEL注文は、何らかの理由で、クローズするBAY注文のチケット番号から非常に離れたチケット番号を持っていることに気づきました。 たとえば、最初の BAY 注文のチケット番号は 2 ですが、それをクローズする CEL 注文のチケット番号は、なぜか 3 ではなく 91779 です。

また、1つだけ注文を出すと、すべてが論理的になります。BAY注文は2番、クローズCEL注文は3番です。

int y;
#include<Trade\Trade.mqh>
 CTrade  trade;
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlDateTime time_now;
   TimeCurrent(time_now);
   if(time_now.hour == 10&&y==0)
   {trade.Buy(0.1);y =1;}
      
  }


 
ANDREY #:

本当にありがとう。あなたのおかげで、5番をマスターするのがかなり進みました。このコードではポジションをクローズできないとおっしゃいますね。しかし、すべての条件を削除すると、ポジションはカウンターオーダーCELによってオープンされ、クローズされます。では、どのようなコード・コマンドで注文をクローズするのですか?プログラムは、一定のポイント数の後、あるいは何らかのイベントの発生時に、注文を正確にクローズするためのデータをどこから入手するのでしょうか?どのようなルールで注文をクローズするのかも理解できません。

また、BAY注文をクローズするために使用されるSEL注文は、何らかの理由で、クローズするBAY注文のチケット番号から非常に離れたチケット番号を持っていることに気づきました。 たとえば、最初の BAY 注文のチケット番号は 2 ですが、それをクローズする CEL 注文のチケット番号は、なぜか 3 ではなく 91779 です。

そして、1つだけ注文を出すと、すべてが論理的になります。BAY注文は2番、クローズCEL注文は3番です。


さて、何が起こっているのか理解するのは難しいのですが、この商品でブローカーが許可している以上のポジションをオープンし、テスターが余分なポジションをクローズし始めたのだと思います。

実際には、このような余分なポジションを建てるべきではありません。しかし、あなたに起こっていることを他の方法で説明することはできません。


私も1つのポジションが理解できません。なぜ一日の終わりにクローズするのか。おそらく、あなたのブローカーはポジションを翌日に持ち越すことを禁じているのでしょう。

 
Aleksandr Slavskii #:

Well, it's hard to understand what's going on there, but I think you open positions more than allowed by the broker on this instrument and the tester starts closing the extra ones.

実際には、このような余分なポジションを開くべきではありません。しかし、それ以外の方法で何が起こっているのかを説明することはできません。


私も1つのポジションが理解できません。なぜ一日の終わりにクローズするのか。おそらく、あなたのブローカーはポジションを翌日に持ち越すことを許可していないのでしょう。

ありがとうございます。その説明は非常に論理的に見えます。 全く同じコードと同じ期間の四角形で、同じことが起こりますが、注文だけが反対注文で閉じられません。私のブローカーはAlpariです。あなたの説明の後、なぜ引け注文の数が引け注文と大きく異なるのかが明らかになりました。なぜなら、すべての引け注文は、すべての引け注文の後に、一番最後に開設されるからです。

 

皆さん、こんにちは!
私はCTrade クラスを使って5つの注文を出す方法を学ぼうとしています。より正確には、STOPLOSSパラメータの設定方法を学ぼうとしています。私が理解したところでは、4では最後の買値は定義済みのBidに保存され、5では最後の買値は保存されず、オプションの1つとして、CsymbolInfo クラスのBidメソッドで計算されます。しかし、このメソッドが価格を計算するためにはName メソッドによってシンボルが事前に選択されている必要が あります。Name メソッドの 仕組みは理解できます。Nameメソッドにシンボルの名前かNULLを入れれば、falseかtrueを返します。

しかし、Name メソッドと Bid メソッドをどこでどのように組み合わせれば、 Bid価格が変数cに 格納 されるのかがわかりません。

4つの注文はSelect()関数を使って選択されましたが、5つの注文は注文ではなくシンボルを選択しなければなりません。どうすればいいのかわかりません。

CTrade クラスのBtsuメソッドのSLパラメータで使用している withという 変数にBid価格を保存するための断片を私のコードに書いていただければ幸いです。

int y;
double c,d;
#include<Trade\Trade.mqh>        //класс
#include <Trade\SymbolInfo.mqh>  //класс 
CTrade  trad;                   //класс (создание объекта класса)
CSymbolInfo pris;
//+------------------------------------------------------------------+
void OnTick()
  {
   c=pris.Bid();//
   Print(" ---------------------CТОП------------------------------------------------------------  ",c);
   MqlDateTime t;                //структура (объявление структуры)
   TimeCurrent(t);               //структура (инициализация структуры)
   if(t.hour == 9&&y==0)
   {trad.Buy(0.1,NULL,0,c);y =1;}   //класс
      
  }
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / Name
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / Name
  • www.mql5.com
Name - CSymbolInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
理由: