参議院の実施について議論。 - ページ 5

 
Ivan_Invanov:
ここでは、言語の構文を 学びました。例としてコンストラクタを学習しています。クラスコールが見えます。ここから先は、私の場合、論理が途切れています。どうしたらいいのでしょうか?記事を検索する?標準的な手段で実装するのが良いのか、自分でクラスを書くのが良いのか?
コンストラクタの明確化についての記事があります。例えば、信号ブロックの仕組みを説明する。そして、はい、このパラメータは固定です、というようなドライなフレーズをいくつか。そして、それを変えるために書かれたものは何もない。私はそのような質問を持って、私はパラメータが必要ない場合、私は単にそれを削除することができますか? それは、初期化で、あまりにもそこに削除?他にどのようなパラメータをどのように追加できますか?変化の事例を見れば、わかるんですけどね。純粋にリファレンスの問題だと思うのですが。体系的に理解するための十分な詳細、事例、一般論がない。もしかしたら、私はとても鈍感なのかもしれません。私だけかなあ?あるいは、トレーニングマニュアルを改善する必要があるのでは?個人的にお金を払ってもいいと思っている、例えば。
 
Ivan_Invanov:

MQL5 - ドキュメントが最も詳細に記述されているリソースです。記事、フォーラム、KodoBaseに膨大な情報があります。これだけ詳しく説明されているところは他にはないでしょう。

必要なのは、すべてを理解しようとする意志だけです。

 
Vladimir Karputov:

MQL5 - ドキュメントが最も詳細に記述されているリソースです。記事、フォーラム、KodoBaseに膨大な情報があります。これほど詳細な記述は、世界中どこにもないでしょう。

ただ、すべてを把握する意志が必要なのです。

ここで具体的な質問です。CExpertSignalに AddFilter機能を追加しました。例えば、そこにスプレッドを設けています。見本が見れない場合、どのように作ればいいのでしょうか。具体的にどうすればいいのでしょうか?では、これから当ててみますね。

CExpert ExtExpert;
ExtExpert.InitSignal(signal);
signal.AddFilter(filter0);
filer0.Spread(20);

エラーなくコンパイルできました。正しく書けているか?スプレッドが20を超えると取引は成立しないのですか?また、そのような場合、どうすればよいのでしょうか?何が読めるか?

 
Ivan_Invanov:

ここで具体的な質問です。CExpertSignalにAddFilterがありますが、ヘルプにはAddFilter関数について何も書いてありません。例えば、スプレッドがあります。お手本が見えないのですが、どう書けばいいのでしょうか?具体的にどうすればいいのでしょうか?では、これから当ててみますね。

エラーなくコンパイルできました。正しく書けているか?スプレッドが20を超えると取引は成立しないのですか?また、そのような場合、どうすればよいのでしょうか?何を読めばいいのでしょうか?

読み方:エムエムエルフォー/エムエムエルファイブ ウィザード

アサインメントです。

  • ウィザードを使用して簡単なExpert Advisorを作成する場合
  • をMetaEditorで開いてください。
その後に質問をする。
Мастер MQL4/MQL5 - Справка по MetaEditor
Мастер MQL4/MQL5 - Справка по MetaEditor
  • www.metatrader5.com
Благодаря Мастеру MQL4/MQL5, трейдер может создать советника, не обладая знаниями в области программирования. Все что нужно сделать — это выбрать торговые сигналы, которые будет использовать советник, алгоритм мани-менеджмента и трейлинг-стопа. Код советника будет сгенерирован автоматически на основе выбранных параметров. Помимо этого, Мастер...
 
Ivan_Invanov:

ここで具体的な質問です。CExpertSignalにAddFilterがありますが、ヘルプにはAddFilter関数について何も書いてありません。例えば、スプレッドがあります。お手本が見えないのですが、どう書けばいいのでしょうか?具体的にどうすればいいのでしょうか?では、これから当ててみますね。

エラーなくコンパイルできました。正しく書けているか?スプレッドが20を超えると取引は成立しないのですか?また、そのような場合、どうすればよいのでしょうか?何を読めばいいのでしょうか?

ここでは、基本的な知識がないまま、すぐに大人の話題を書き始めようとしているように思えます。そういうわけにはいきません。まずアルファベットを覚え、楷書で書くことを覚え、少しずつエッセイを書くようになり、そして才能が必要になってくるのです。だから、自動生成されたコードを理解しようとするのは、基礎知識がなければ同じこと...。壁に頭をぶつけるには最適ではない。

 
//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\Signal\SignalMA.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedRisk.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string             Expert_Title         ="1";         // Document name
ulong                    Expert_MagicNumber   =15825;       //
bool                     Expert_EveryTick     =false;       //
//--- inputs for main signal
input int                Signal_ThresholdOpen =10;          // Signal threshold value to open [0...100]
input int                Signal_ThresholdClose=10;          // Signal threshold value to close [0...100]
input double             Signal_PriceLevel    =0.0;         // Price level to execute a deal
input double             Signal_StopLevel     =50.0;        // Stop Loss level (in points)
input double             Signal_TakeLevel     =50.0;        // Take Profit level (in points)
input int                Signal_Expiration    =4;           // Expiration of pending orders (in bars)
input int                Signal_MA_PeriodMA   =12;          // Moving Average(12,0,...) Period of averaging
input int                Signal_MA_Shift      =0;           // Moving Average(12,0,...) Time shift
input ENUM_MA_METHOD     Signal_MA_Method     =MODE_SMA;    // Moving Average(12,0,...) Method of averaging
input ENUM_APPLIED_PRICE Signal_MA_Applied    =PRICE_CLOSE; // Moving Average(12,0,...) Prices series
input double             Signal_MA_Weight     =1.0;         // Moving Average(12,0,...) Weight [0...1.0]
//--- inputs for money
input double             Money_FixRisk_Percent=10.0;        // Risk percentage
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Creating signal
   CExpertSignal *signal=new CExpertSignal;
   if(signal==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//---
   ExtExpert.InitSignal(signal);
   signal.ThresholdOpen(Signal_ThresholdOpen);
   signal.ThresholdClose(Signal_ThresholdClose);
   signal.PriceLevel(Signal_PriceLevel);
   signal.StopLevel(Signal_StopLevel);
   signal.TakeLevel(Signal_TakeLevel);
   signal.Expiration(Signal_Expiration);
//--- Creating filter CSignalMA
   CSignalMA *filter0=new CSignalMA;
   if(filter0==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating filter0");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PeriodMA(Signal_MA_PeriodMA);
   filter0.Shift(Signal_MA_Shift);
   filter0.Method(Signal_MA_Method);
   filter0.Applied(Signal_MA_Applied);
   filter0.Weight(Signal_MA_Weight);
//--- Creation of trailing object
   CTrailingNone *trailing=new CTrailingNone;
   if(trailing==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add trailing to expert (will be deleted automatically))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set trailing parameters
//--- Creation of money object
   CMoneyFixedRisk *money=new CMoneyFixedRisk;
   if(money==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add money to expert (will be deleted automatically))
   if(!ExtExpert.InitMoney(money))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set money parameters
   money.Percent(Money_FixRisk_Percent);
//--- Check all trading objects parameters
   if(!ExtExpert.ValidationSettings())
     {
      //--- failed
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| "Trade" event handler function                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| "Timer" event handler function                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+
こんにちは。このEAが持つマーケットエントリーシグナルと、コードのどこにあるのか教えてください。
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
市場のエントリー シグナルは「フィルター」の中にあるのですね。
 
なぜクラス宣言が違うのか、なぜメモリをスタックするときとしないときがあるのか?アスタリスク付きとアスタリスクなし?
 
スプレッドフィルターが必要なのですが、ここで何が行われているのか理解したいです。ここでの戦略は、平均値から何らかの数値が高くなれば、取引を行うという理解で合っていましたか?
 
Ivan_Invanov:
こんにちは。このEAのマーケットエントリーシグナルは 何なのか、コードのどこにあるのか、教えてください。

そのような問題には、デバッガーを使って対処する必要があります。

ティックが来ると、OnTick()関数が呼ばれます。ここですべての処理が行われ、必要に応じてシグナルが識別され、取引アクションが実行されます。

ご覧のように、この関数では、ExtExpert.全てはこの関数の中で行われ、それ以外のコードはありません。

そこで、ブレークポイントを設定し、デバッガでExpert Advisorを実行します。最初のティックが来たらすぐにブレークポイントをトリガーし、この位置でコードを停止させます。そして、なぜ、どのような動作が行われるのかを考えながら、一歩一歩コードを進めていくのです。