[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 340

 
dyxaa:

大家好,如果一个挂单没有被触发,你如何在n,点的数量上关闭它?

它不能被关闭,但它可以被删除

 

我为训练目的画了一个指标(即我在学习),当我改变数据时得到这个结果。


红线和蓝线并没有顺利地 相互流动。

为什么会出现这种情况,我怎样才能绕过它?

  for(i = limit; i >= 0; i--) 
    {
     cciTrendNow      = iCCI(NULL, 0, CCIPeriod, PRICE_TYPICAL, i);
     cciTrendPrevious = iCCI(NULL, 0, CCIPeriod, PRICE_TYPICAL, i+1);

     if (cciTrendNow > st && cciTrendPrevious < st)
      {
       TrendUp[i+1] = TrendDown[i+1];
       ArrayInitialize( TrendDown[i+1], 0 ); // Попытался обнулить, чтобы обойти некрасивую отрисовку.
      }

     if (cciTrendNow < st && cciTrendPrevious > st) 
      {
       TrendDown[i+1] = TrendUp[i+1];
       ArrayInitialize( TrendUp[i+1], 0 );   // Попытался обнулить, чтобы обойти некрасивую отрисовку.
      }
    }

问题出现在代码的这一部分。但如何克服它--自己想不出来,也想不出什么办法。请告知。

 
dyxaa:

大家好,如果一个挂单没有被触发,你如何在n,点的数量上关闭它?

点击十字架!
 
artmedia70:

我不是在谈论外部变量。我说的是这个。

让我们想象一个情况。必须根据最后一个空缺职位做出决定。


对于测试者。

我们创建变量,在这些变量中我们将存储最后打开的位置的必要数据。

一旦有新的位置被打开,我们将立即把所需的数据添加到这些变量中。

当有下一个开仓信号出现时(例如,在20个测试分钟后),我们需要检查一些标准,根据这些标准决定要开仓的数据。这些标准,按照惯例,取决于之前开设的职位。我们从变量中读取它们(我们在之前的开局中保存了它们),并将它们作为新位置的额外数据。

当我们打开一个头寸时,我们将新开的头寸的新数据存储在变量中。


真的。

让我们想象一下同样的情况,但是......。想象一下,在最后一个仓位被打开并将其数据存储在变量中之后,已经过去了10分钟(在下一个仓位被打开之前还必须再过10分钟(我们只是在 "测试器 "中假设了这一点))。而在这个时间间隔内,专家顾问由于某种原因被重新启动了。

重启EA后,最后开仓的数据被储存在变量中,会发生什么?他们将不存在。

那么,我们需要从哪里得到它们呢?右边--搜索。这就是为什么我们需要搜索必要数据的功能。因此,当我们需要的时候,最好一次就能找到所有的东西,而不是把它们储存在变量中,这样做确实更方便、更快捷。


:))



谢谢你,阿尔乔姆。当然,这一切都很有意义。这就是为什么我正在学习用函数写作。但有时逻辑并不那么好。这就是为什么我跌倒了。上次我通过将所有的循环数据从一个函数扩展到另一个函数来解决这个问题时,我从一般的编程中休息了几天,以调整自己的状态。现在我将继续前进!
 
solnce600:

先生们,请告知如何使用循环 对以下算法进行编码。

如果(iLow (Symbol (),0,1) > iLow (Symbol (),0,10))// 如果第一根 蜡烛 最小值>第十根 蜡烛 最小值

OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-2950*Point,Bid+150*Point, "jfh",123 ); // 打开订单。

我必须要

如果 1 同时 2同时 3......。...同时 低位 9号蜡烛>低位10号蜡烛(即 低位蜡烛从1到9)。

/ /打开一个订单。

谢谢你。

不过,如果我没听错的话,代码应该是

bool have = true;

for (int i=0; i<10; i++)
  {
   if (Low[i] > Low[10])        // Как вариант:  if ( iLow(Symbol(),0,i) > iLow(Symbol(),0,10) )
    {
     have = false;
     break;
    }
  }

if(have) OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-2950*Point,Bid+150*Point,"jfh",123 );    //открыть ордер.

但这是在FAQ 的提示下。如果没有它,就不可能做到这一点。

 

我有一个想法,但如何在现实生活中做到这一点,如何在现实生活中可靠地工作,我真的不知道。

其本质如下。我们应该在条形图上放置猫头鹰后立即进入市场,即在新条形图的开端。这是第一个订单。此外,当订单被TP或Stop价格关闭时,我们应该立即在新条形图的开口处打开一个订单。如何更合理地进行?

我知道我们应该创建一个变量。将当前条形图的开盘价 放在其中。并将此值与当前栏位的开盘价进行比较。如果该变量的值不等于索引为0的当前条形的开盘价,我们将开出一个订单。

这是最好的选择吗?

 
Chiripaha:

我为训练目的画了一个指标(即我在学习),当我改变数据时得到这个结果。


红线和蓝线并不顺利地进入对方

为什么会出现这种情况,我怎样才能绕过它?

问题出现在代码的这一部分。但如何克服它--自己找不到或想不出什么办法。你能告诉我吗?


唷!......我已经弄明白了......。: )))

现在,如果我能够解决其余的问题,情况就会好得多。感谢所有愿意提供帮助的人!: ))

我又打开了两个一模一样的缓冲区--它们没有画出来......什么是巫术...- 好的,我们会研究和寻找。不过,在 "自行车 "上浪费时间是很可惜的。在这种情况下,什么时候能发明一个新的?

 
hoz:

我有一个想法,但如何在现实生活中做到这一点,如何在现实生活中可靠地工作,我真的不知道。

其本质如下。我们应该在条形图上放置猫头鹰后立即进入市场,即在新条形图的开端。这是第一个订单。此外,当订单被TP或Stop价格关闭时,我们应该立即在新条形图的开口处开立一个订单。如何更合理地进行?

我知道我们应该创建一个变量。将当前条形图的开盘价放在其中。并将此值与当前栏的开盘价进行比较。如果该变量的值不等于索引为0的当前条形的开盘价,我们将开出一个订单。

这是最好的选择吗?


如果实施,它在真实交易中的工作将和在模拟交易中的工作一样可靠。但不是说它会有利润。

你必须打开一个订单,仅此而已 但你还没有制定出订单应该朝哪个方向开,以及在什么条件下确定这一方。

你不必比较任何东西--只需在出现新的条形图时(根据你的输入)开出一个订单。

newBars = iBarShift(Symbol(), PERIOD_H1, lastH1BarTime);    // Это было найдено через поиск на форуме

如果你不知道。

"而经验是艰难的错误之子。
而天才是悖论的朋友"(亚历山大-谢尔盖耶维奇为您提供帮助)。

你需要做(写)一个猫头鹰,并通过实验来检查它。- 我认为没有人会为你写猫头鹰(免费)。给你一个提示是一回事。但实施想法(思想)不是帮助,而是工作。

 
borilunad:
点击十字架!

正是如此。出色的简单))))

我请求你的帮助)这里有一个挂单,让我们买入止损,例如我需要它删除,如果价格过了100点,它能做到吗?

 
borilunad:
点击十字架!

正是如此。出色的简单))))

我请求您的帮助)这里放一个订单挂起,让我们买入止损,例如我需要它删除,如果价格过了100点,它能做到吗?