关于落实议员的讨论。 - 页 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,交易将无法完成?那么在这种情况下,我应该怎么做呢?我应该读什么?

阅读:MQL4/MQL5向导

任务。

  • 使用向导创建一个简单的智能交易系统
  • 在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。一切都发生在这个函数中,代码中没有其他内容。

因此,你在它处设置一个断点,并在调试器中运行专家顾问。只要第一个刻度线一到,断点就会触发,你就会在这个位置停止代码。然后你一步一步地浏览代码,弄清楚为什么要执行什么动作。