任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 49

 
Chiripaha:

我遇到了这个有趣的问题。

我写了一个微不足道的条件。

,,,

如果你的A和B价格相同,正确的条件可能是这样的

if( А + 0.5 * Point < Б )
{
  // Выполнить действия
}
 
Aizec:

我可以有一个小的代码例子吗?

https://www.mql5.com/ru/code/10831
 


TarasBY:

罗杰
分数在比较之前需要进行归一化处理。
误入歧途

如果你的A和B的价格,正确的条件可能是这样的

非常感谢您的帮助!

我一直在对数据进行标准化处理,这就是为什么我对类似的现象感到惊讶。但显然,在写作过程中和经验上并没有考虑到一切,所以 "在比较被比较的参数之前就进行归一化 "的建议非常有效。一切工作都在持续进行。

 

大家晚上好。

你能告诉我为什么订单无法打开吗?

int last;

int start()

(

if (Hour( ) == 12) // 如果在TF 60上形成12小时的蜡烛
last = iBarShift (Symbol ( ),0,iTime( NULL, 0, 0)); // 记住这个蜡烛的N
if (last == 10) // 而当这个蜡烛是N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ); // 打开订单。

)

return(0);

我认为iBarShift不起作用,因为iTime(NULL, 0, 0))参数 返回的时间是秒,而我需要的是D'04.04.2000 19:05'的格式。

问题1.哪个函数以D'04.04.2000 19:05'的格式返回一个蜡烛的开盘时间?

我检查过了--在这种格式下,iBarShift功能起作用,订单打开。但只有 第一个条件缺失 的情况下才有效,如果(Hour( ) == 12)

问题2 为什么iBarShift在条件if(Hour( )==12)之后不起作用?

谢谢你。

 
solnce600:

大家晚上好。

你能告诉我为什么订单无法打开吗?

int last;

int start()

(

if (Hour( ) == 12) // 如果在TF 60上形成12小时的蜡烛
last = iBarShift (Symbol ( ),0,iTime( NULL, 0, 0)); // 记住这个蜡烛的N
if (last == 10) // 而当这个蜡烛是N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ); // 打开订单。

)

return(0);

我认为iBarShift不起作用,因为iTime(NULL, 0, 0))参数返回的时间是秒,而我需要的是D'04.04.2000 19:05'的格式。

问题1.哪个函数以D'04.04.2000 19:05'的格式返回一个蜡烛的开盘时间?

我检查过了--在这种格式下,iBarShift功能起作用,订单打开。但只有 第一个条件缺失 的情况下才有效,如果(Hour( ) == 12)

问题2 为什么iBarShift在条件if(Hour( )==12)之后不起作用?

谢谢你。


也就是说,你(如果我没有理解错的话)在一小时框架的第22条上开了一个头寸

int start()
  {

if(iBarOfDayCalc(60)==22)
     int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point,"jfh",123 ); //открыть ордер

 return(0);
  }

//  фуннкцыя------------------------
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 26.02.2008                                                     |
//|  Описание : Возвращает расчётный номер бара от начала суток.               |
//|           : Нумерация баров начинается с 1 (единица).                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    tf - таймфрейм                       (0 - текущий таймфрейм)            |
//|    dt - дата и время открытия бара      (0 - текущее время)                |
//+----------------------------------------------------------------------------+
int iBarOfDayCalc(int tf=0, datetime dt=0) {
  if (tf<=0) tf=Period();
  if (dt<=0) dt=TimeCurrent();
  if (tf>PERIOD_D1) {
    Print("iBarOfDayCalc(): Таймфрейм должен быть меньше или равен D1");
    return(0);
  }
  double ms=MathMod(dt/60, 1440);      // количество минут от начала суток
  int    bd=MathFloor(ms/tf)+1;        // номер бара от начала суток

  return(bd);
}
 
r772ra:


也就是说,你(如果我理解正确的话)在一小时框架的第22条上开了一个头寸

在我的例子中--正是如此,即在第22支蜡烛上。

但一般来说--我想记住任何(我需要的参数)的蜡烛

并在它(记忆)后,蜡烛将被移动到一个理想的距离(即,将 - 5.6....0)。

打开一个订单。

因此,如果我没有弄错的话,金的上述功能可能对我不起作用。

因为它从一天的开始计算蜡烛,而且只用24根蜡烛操作。

我想我需要 iBarShift 函数,它可以记住任何蜡烛。

(例如,从我需要的任何蜡烛中每隔50或100根蜡烛)。

但这个功能由于某些原因我没有工作(细节我在第一个帖子中概述)

如果你能帮助我找到问题的答案,我将非常感激。

非常感谢您的参与。

 

下午好,请您告知如何确保在打开这个特定的头寸后,EA代码从头开始工作,当我这样做时

如果(ticketbuy>0)
{
返回。
}

我不希望它通过其他条件打开更多的订单,而我还有几个订单要打开。我还要开几个订单,谢谢你。

 
Vinin:

如果有足够的指示器缓冲区,你可以不使用对象来做这件事


如果指标是窗口化的,你如何在图表上显示箭头? 我只使用4个缓冲区

 

下午好,抱歉打扰了正在进行的谈话...如果你有时间......我有一个指标,可以上下拉动箭头,我需要为它做一个EA,我可以说我刚开始学习Muell,没有处理过指标。

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 blue

#property indicator_color2 Red

//---- 输入参数

Extern int NumBars=500;

//---- 缓冲区

双倍ExtMapBuffer1[]。

双倍ExtMapBuffer2[]。

双层传播。

也许有人有一个模板

 

如果有人知道,请告知。Forex4you上的Gepard 5.0专家顾问正在开启一些大减价的交易。我在哪里可以调整设置?