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

 
new-rena:

反问。

你认为任何货币对的走势:图表、买价和卖价等等,都取决于你的一组变量?

汇率的变化并不取决于变量,但交易员试图在运动中找到规律性,并在此基础上选择变量(输入数据)进行开仓、持仓和平仓。毕竟,交易系统是一套旨在实现盈利的工作规则。也许,利润和损失的分布是随机的,但它们的比例是不同的,因此,形成了有利可图的交易系统。一定是这样的。
 
Евгений:
汇率的变化并不取决于变量,但交易员试图在运动中找到模式,并在此基础上选择变量(输入数据)来开仓、维持和平仓。毕竟,交易系统是一套旨在实现盈利的工作规则。也许,利润和损失的分布是随机的,但它们的比例是不同的,因此,形成了有利可图的交易系统。我想是的。
基本上,你已经回答了你自己的问题。也就是说,在同样的价格变动上,你可以得到以下结果;盈亏=CONST
 
建议一个关于限制的功能,在专家顾问中,我想禁止从移动平均线 卖出或买入。
 
KoltRU:
在专家顾问中,我想禁止从移动平均线 上卖出或买入,请告知功能限制。
我把它变得更简单了,我在打开时添加了一个条件
 

这是个讨厌的问题。数组引用没有被传递给函数。

void GetIndValue(int IndNo, int Vol, double *out[]){;};

有了这个双倍的*out[] - 无论你怎么写,都会出现所有的错误。

'BatIndicators.mqh' BatIndicators.mqh 1 1

'*' -指针 不能使用 BatIndicators.mqh 18 45

'out' - 数组只能通过引用传递 BatIndicators.mqh 18 46

2个错误(s), 0个警告(s) 3 1

要么是一个,要么是另一个,要么是两个。我记得以前是没有问题的,或者说是在C区。)


 
Yuriy Asaulenko:

这是个讨厌的问题。数组引用没有被传递给函数。

有了这个双倍的*out[] - 无论你怎么写,都会出现所有的错误。

'BatIndicators.mqh' BatIndicators.mqh 1 1

'*' - 指针不能使用 BatIndicators.mqh 18 45

'out' - 数组只能通过引用传递 BatIndicators.mqh 18 46

2个错误(s), 0个警告(s) 3 1

要么是一个,要么是另一个,要么是两个。我记得以前是没有问题的,或者说是在C区。)


试试这样的方式

void GetIndValue(int IndNo, int Vol, double &out[]){}
 
Andrey Barinov:

试试这个

谢谢你。
 

//---得到新的子窗口的编号,我们将尝试在该窗口中添加指标

int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL)。

这是我正在看的代码https://www.mql5.com/ru/docs/chart_operations/chartindicatoradd

这个例子显示了如何将指标放在子窗口中。 如果你不需要子窗口,就用muwig的例子来显示如何做?

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Antoshkin:

//---得到一个新的子窗口的编号,我们将尝试在该窗口中添加一个指标。

int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL)。

这是我正在看的代码https://www.mql5.com/ru/docs/chart_operations/chartindicatoradd

这个例子显示了如何将一个指标放在一个子窗口中。 如果你不需要子窗口,只要用muwig的例子来看看如何做?

如果你想把指标添加到主窗口,那么。

子窗口

[in] 图表的子窗口编号。0表示主图表窗口。要为一个新窗口添加指标,参数必须比最后一个现有窗口的索引多一个,即等于CHART_WINDOWS_TOTAL。如果参数值超过CHART_WINDOWS_TOTAL 值,将不创建新的窗口,指标将不被添加。

 
Karputov Vladimir:

如果你需要在主窗口添加一个指标,那么。

//+------------------------------------------------------------------+
//|                                                         0000.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

input int MA_Period=21; 
input int MA_Shift=0; 
input ENUM_MA_METHOD MA_Method=MODE_SMA;

int MA_handle=INVALID_HANDLE; 
//+------------------------------------------------------------------+ 
//| Expert initialization function                                   | 
//+------------------------------------------------------------------+ 
int OnInit() 
  { 
  
   MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );
//--- попробуем добавить индикатор на график 
AddIndicator();

   return(INIT_SUCCEEDED); 
  } 

//+------------------------------------------------------------------+ 
//| Функция проверки и добавления индикатора на график               | 
//+------------------------------------------------------------------+ 
bool AddIndicator() { if(MA_handle==INVALID_HANDLE) 
{ Print(__FUNCTION__,"  Создаем индикатор ");

 MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );
if(MA_handle==INVALID_HANDLE) 
{ 
 Print("Не удалось создать индикатор . Код ошибки ",GetLastError()); 
 } 
  }     
//--- сбросим код ошибки 
   ResetLastError(); 
//--- накладываем индикатор на график 
  
   Print("Mа построен "); 
//--- получим номер нового подокна, в которое добавим индикатор  
   int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); 
   PrintFormat("Добавляем индикатор на окно %d графика",subwindow); 
   if(!ChartIndicatorAdd(0,subwindow,MA_handle)) 
     { 
      PrintFormat("Не удалось добавить индикатор  на окно %d графика. Код ошибки  %d", 
                  subwindow,GetLastError()); 
     } 
   return(true); 
  } 
void OnDeinit(const int reason)
{
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );

你好,弗拉基米尔。

我一定是把我的问题表述错了。

我不需要一个子窗口,指标应该放在价格图表上,就像一个标准的图表。

我把它看作是一个例子,并试图去理解。

我希望安装在图表上的指标有自己的编号,这样就可以使用 "添加 "按钮在图表上创建必要数量的副本.....。我想删除一个由 "十字 "按钮选择的........(我还不想描述它们))