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

 
Alexey Belyakov #:

已检查。第二种情况很好,但并不合适,因为需要手动将每个日期输入窗口,非常耗时。应该很简单...... "ctrl-c,ctrl-v"。

在第一种情况下,由于某种原因,它不会在最近的蜡烛上画三条线,而只画一条线。 原因尚不清楚,我正在研究。

线名应该是唯一的。我忽略了这一点

 

const string name="VLine,VLine2,VLine3", // 行名

我将行名设置为唯一的。在输入中也是如此。没用。

 
Alexey Belyakov #:

const string name="VLine,VLine2,VLine3", // 行名

我将行名设置为唯一的。在输入中也是如此。没用。

datetime time1 = D'2021.11.15 00:00:00';
datetime time2 = D'2022.11.15 00:00:00';
datetime time3 = D'2023.11.15 00:00:00';
// в этом случае так делаем
VLineCreate(0, "InpName1", 0, time1, InpColor, InpStyle, InpWidth, InpBack, InpSelection, InpHidden);
VLineCreate(0, "InpName2", 0, time2, InpColor, InpStyle, InpWidth, InpBack, InpSelection, InpHidden);
VLineCreate(0, "InpName3", 0, time3, InpColor, InpStyle, InpWidth, InpBack, InpSelection, InpHidden);

把名称 放在了错误的地方,而且不是这样)。

 
Alexey Belyakov #:

const string name="VLine,VLine2,VLine3", // 行名

我将行名设置为唯一的。在输入中也是如此。没用。

在这里,不带输入参数运行,直接像这样复制,也许会更清楚。

//+------------------------------------------------------------------+
//| Создает вертикальную линию                                       |
//+------------------------------------------------------------------+
bool VLineCreate(const long            chart_ID = 0,      // ID графика
                 const string          name = "VLine",    // имя линии
                 const int             sub_window = 0,    // номер подокна
                 datetime              time = 0,          // время линии
                 const color           clr = clrRed,      // цвет линии
                 const ENUM_LINE_STYLE style = STYLE_SOLID, // стиль линии
                 const int             width = 1,         // толщина линии
                 const bool            back = false,      // на заднем плане
                 const bool            selection = true,  // выделить для перемещений
                 const bool            hidden = true)     // скрыт в списке объектов

  {
   ObjectCreate(chart_ID, name, OBJ_VLINE, sub_window, time, 0);
//--- установим цвет линии
   ObjectSetInteger(chart_ID, name, OBJPROP_COLOR, clr);
//--- установим стиль отображения линии
   ObjectSetInteger(chart_ID, name, OBJPROP_STYLE, style);
//--- установим толщину линии
   ObjectSetInteger(chart_ID, name, OBJPROP_WIDTH, width);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(chart_ID, name, OBJPROP_BACK, back);
//--- включим (true) или отключим (false) режим перемещения линии мышью
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект
   ObjectSetInteger(chart_ID, name, OBJPROP_SELECTABLE, selection);
   ObjectSetInteger(chart_ID, name, OBJPROP_SELECTED, selection);

   return(true);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime time1 = D'2023.06.26 10:00:00';
   datetime time2 = D'2023.06.26 11:00:00';
   datetime time3 = D'2023.06.26 12:00:00';
//--- создадим вертикальную линию
   VLineCreate(0, "Name1", 0, time1, clrBlue, STYLE_DASHDOTDOT);
   VLineCreate(0, "Name2", 0, time2, clrGreen, STYLE_SOLID, 5);
   VLineCreate(0, "Name3", 0, time3);
  }
//+------------------------------------------------------------------+
 
Aleksandr Slavskii #:

在这里,不带输入参数运行它,像这样直接复制,也许会更清楚。


非常感谢!正合我意!

 

以下是CTrade 交易类中 的买入/卖出功能

我在其中指定了一个价格,但头寸仍按 Ask/Bid 开仓。

我可以在这里指定什么样的价格?

 
Alexey Belyakov #:


非常感谢!正合我意!

独一无二的名字)

string  var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);
     string NameLine="VLine_" +  "_"+var1;
 
deerhunter22 CTrade 交易类中 的买入/卖出功能

我在其中指定了价格,但头寸仍按 Ask/Bid 开仓。

我可以在这里指定什么样的价格?

注意其他方法

   //--- additions methods
   bool              Buy(const double volume,const string symbol=NULL,double price=0.0,const double sl=0.0,const double tp=0.0,const string comment="");
   bool              Sell(const double volume,const string symbol=NULL,double price=0.0,const double sl=0.0,const double tp=0.0,const string comment="");
   bool              BuyLimit(const double volume,const double price,const string symbol=NULL,const double sl=0.0,const double tp=0.0,
                              const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC,const datetime expiration=0,const string comment="");
   bool              BuyStop(const double volume,const double price,const string symbol=NULL,const double sl=0.0,const double tp=0.0,
                             const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC,const datetime expiration=0,const string comment="");
   bool              SellLimit(const double volume,const double price,const string symbol=NULL,const double sl=0.0,const double tp=0.0,
                               const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC,const datetime expiration=0,const string comment="");
   bool              SellStop(const double volume,const double price,const string symbol=NULL,const double sl=0.0,const double tp=0.0,
                              const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC,const datetime expiration=0,const string comment="");
 
Alexey Viktorov #:

注意其他方法

是的,我当然知道这些方法,但我需要其他....。总之,重点是这个。我最近开始在 binance 上交易,想测试一下。还有一个厨房经纪商也有很多加密货币,但是点差干扰了交易。因此,报价与 binance 报价的匹配度相当高,特别是如果考虑到价格(买价+卖价)/2。

在这里,我想最大限度地提高匹配度,当然也有可能忽略这些差异。

 
deerhunter22 #:

是的,我知道他们,但这不是我的目的。总之,重点是这样的。我最近开始在 binance 上交易,想测试一下。还有一个厨房经纪商也有很多加密货币,但价差干扰了交易。因此,报价与 binance 的报价相当吻合,尤其是如果考虑到价格(买价+卖价)/2。

在这里,我想最大限度地提高匹配度,当然也有可能忽略这些差异。

也许您可以考虑创建自己的图表。MQL5 允许这样做。