初学者的问题 MQL5 MT5 MetaTrader 5 - 页 111

 

   felidae: 
Нет, всё в порядке, просто я дал случайно свою ссылку. Ваша должна быть по идее такая: https://www.mql5.com/ru/users/vik1991/accounting/chooseout

谢谢你的回答,有什么办法可以增加收益,还是等待需求增加?

 

请告知如何在基于MQL5向导的EA中增加(补仓)仓位,其中仓位是用

virtual int LongCondition();
virtual int ShortCondition()

我根据以下文章写了一个机器人

https://www.mql5.com/ru/articles/367"在6个步骤中创建一个交易机器人",它运行良好,但任何试图影响头寸大小的行为

(无论它是增加还是减少),通过反复产生的条件,例如:

LongCondition()。

已经建立的头寸保持不变,只有在触发sl , tp时才能删除。

我喜欢MQL5 Wizard,它可以快速而容易地 "建立 "一个多指标EA,改变sl跟踪模块,改变资金管理模块。

但我试图写一个EA,当一个趋势被一个指标确认时,开一个最小的仓位,当趋势被另一个指标确认时,增加(增加)仓位。

遇到了之前描述的问题--当通过LongCondition()重新发出开仓信号时,已经开仓的头寸不会改变。

Создай торговый робот за 6 шагов!
Создай торговый робот за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 
你好,我不知道如何使用 "数学计算 "模式,如果可能的话,我希望看到一个代码例子,或者告诉我在哪里可以找到它。
 

我想在市场上只留下外汇工具,该代码工作良好

   for(int i=0;i<=SymbolsTotal(false);i++)
     {
      if(SymbolInfoInteger(SymbolName(i,false),SYMBOL_TRADE_MODE)==SYMBOL_TRADE_MODE_FULL && SymbolInfoInteger(SymbolName(i,false),SYMBOL_TRADE_CALC_MODE)==SYMBOL_CALC_MODE_FOREX && SymbolInfoDouble(SymbolName(i,false),SYMBOL_ASK)-SymbolInfoDouble(SymbolName(i,false),SYMBOL_BID)<50*SymbolInfoDouble(SymbolName(i,false),SYMBOL_POINT))
        {
         SymbolSelect(SymbolName(i,false),true);
        }
      else SymbolSelect(SymbolName(i,false),false);
     }

但我一在测试器中启动它,它就加载了以下仪器的历史记录;它不能被加载。 我怎样才能在测试器中禁用它????????

2013.04.04 14:09:21 核心 1 GBOTEURUSD17DEC2012: 历史同步开始

 
Yuriy2019:

请告知如何在基于MQL5向导的EA中增加(补仓)仓位,该EA的仓位是通过以下方式建立的


不幸的是,你描述的案例在这里(论坛)属于 "改进 "的范畴。

为了解决这个问题,你需要改变专家顾问的行为。要做到这一点。

1.我们需要创建一个新的类(例如CMyExpert),它继承于CExpert类

2.重新加载其中的处理方法,改变其行为。

3.替换(手动)专家顾问源代码中的包含文件。

#include <Expert\Expert.mqh>

#include <Expert\MyExpert.mqh>

4.替换(手动)专家顾问源代码中的类名称。

CExpert ExtExpert;

CMyExpert ExtExpert;

课堂的例子见附件。如果有一个未结头寸,并且没有对其进行任何操作,则退出方法有注释(第53行)。

不要忘了在向导中的专家顾问每次 "再生 "后都要遵循第3和第4项。

PS 如果你有任何问题,请联系我。

Документация по MQL5: Стандартная библиотека / Классы торговых стратегий / Базовые классы экспертов / CExpert
Документация по MQL5: Стандартная библиотека / Классы торговых стратегий / Базовые классы экспертов / CExpert
  • www.mql5.com
Стандартная библиотека / Классы торговых стратегий / Базовые классы экспертов / CExpert - Документация по MQL5
附加的文件:
MyExpert.mqh  4 kb
 
你好,请你告诉我为什么我不能登录到终端。 我输入了服务器、账号 和密码,但日志中出现了以下条目: 2013.04.05 12:51:20 网络 '68712': 连接到208.64.66.68:443丢失
我尝试了另一个服务器,同样的情况,我做错了什么?
 
uncleVic:

不幸的是,你描述的情况属于这里(论坛)所说的 "微调 "的范畴。

为了解决这个问题,你需要改变专家的行为。要做到这一点。

1.你必须创建一个新的类(例如CMyExpert),它继承于CExpert类

2.重新加载其中的处理方法,改变其行为。

3.替换(手动)专家顾问源代码中的包含文件。

4.替换(手动)专家顾问源代码中的类名称。

附上一个实例类。如果有一个未结头寸并且没有对其进行任何操作,则退出方法被注释掉(第53行)。

记得在向导中的专家顾问每次 "再生 "后,都要遵循第3和第4步。

PS 如果你有任何问题,请随时与我联系。

非常感谢你,一切都很好。当趋势被另一个指标确认时,它就会增加同样的量。

现在我们还有一个问题--是否可以改变 "添加 "的大小?例如,资金管理模块中的标准头寸大小是0.1,而我想添加("添加")专家顾问计算的0.3或0.35,等等。

我如何从LongCondition()子程序向交易模块传递 "补货 "尺寸

 
Yuriy2019:

非常感谢你,它正在起作用!在另一个指标的趋势确认时添加相同的量。

现在我还有一个问题--是否可以改变 "份额 "的大小?例如,资金管理模块中的标准头寸大小是0.1,而我想添加("添加")专家顾问计算的0.3或0.35,等等。

我如何从LongCondition()子程序向交易模块传递 "补货 "尺寸

CExpert类有 一些方法。

//+------------------------------------------------------------------+
//| Long position open or limit/stop order set                       |
//+------------------------------------------------------------------+
bool CExpert::OpenLong(double price,double sl,double tp)
  {
   if(price==EMPTY_VALUE) return(false);
//--- get lot for open
   double lot=LotOpenLong(price,sl);
//--- check lot for open
   if(lot==0.0) return(false);
//---
   return(m_trade.Buy(lot,price,sl,tp));
  }
//+------------------------------------------------------------------+
//| Short position open or limit/stop order set                      |
//+------------------------------------------------------------------+
bool CExpert::OpenShort(double price,double sl,double tp)
  {
   if(price==EMPTY_VALUE) return(false);
//--- get lot for open
   double lot=LotOpenShort(price,sl);
//--- check lot for open
   if(lot==0.0) return(false);
//---
   return(m_trade.Sell(lot,price,sl,tp));
  }

在你的类中重载(类似于Processing),并改变地段确定算法。

Документация по MQL5: Стандартная библиотека / Классы торговых стратегий / Базовые классы экспертов / CExpert
Документация по MQL5: Стандартная библиотека / Классы торговых стратегий / Базовые классы экспертов / CExpert
  • www.mql5.com
Стандартная библиотека / Классы торговых стратегий / Базовые классы экспертов / CExpert - Документация по MQL5
 
uncleVic:

CExpert类有 一些方法。

在你的类中进行重载(类似于Processing)并改变地段检测算法。

谢谢你!
 

有一个指标说,它对开盘价 起作用

编码

#property copyright "Ivanov A."
#property link      "aristocrat12@mail.ru"
#property version   "1.00"

#property description "TrendToTrend"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots   3
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_LINE
#property indicator_type3   DRAW_LINE


#property indicator_style1  STYLE_DASH
#property indicator_style2  STYLE_DASH
#property indicator_style3  STYLE_DASH


#property indicator_color1  Blue
#property indicator_color2  Red
#property indicator_color3  Yellow


#property indicator_applied_price PRICE_OPEN
//--- input param

input int InChPeriod = 14; //Line Trend long
input int InChPeriod2 =7; //Line Trend short

int ExChPeriod,ExChPeriod2,rCount;
//---- buffers

double CentreBuffer[],HorisontBuffer[],ShortBuffer[];
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5