[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 575

 
Sergstuddek:
请教如何使用数组,我需要选择收盘和开盘的最大值和最小值,时间间隔从1.00到10.00,我试着这么做了,但不对。它给出了'[' - 数组索引是一个整数 C:\Program Files\InstaTrader\experts\Probase19 EUR-JPY.mq4 (61, 21) 什么是错的,如何解决?

该警告意味着--数组索引 必须是一个int类型的数字。你需要使用iClose()和iOpen()确定条形图的编号,其开放时间为1h,并在循环中从接下来的10个条形图中选择你想要的。


 
Ekburg:

这就是问题所在:那里的一切都很正常!我为此放了打印机,这样在测试过程中我就可以追踪哪些值被发送到了修改函数中,那里的一切都很正常,停止是不同的,没有抛出任何额外的东西,一切都在服务器允许的范围内,而上面代码中的对手不允许发送相同的值。

我不知道。在我把检查直接放在OrderModify()之前和OrderSelect() 之后,错误1就不再出现了,而先前也不断闪现。
 
rigonich:

该警告意味着--数组索引必须是一个int类型的数字。你需要使用iClose()和iOpen() 函数。确定开盘时间为1小时的小节的编号,在循环中从接下来的10个小节中选择你想要的。
谢谢你的答复。理论上我明白你想说什么,但说实话我不知道在实践中如何做,也许你有一些例子。
 
Desead:

需要使价格图表正常化,任何货币对都可以选择。我需要它作为一个指标。我试着用当前值除以前一个值--我得到的是1左右的某种震荡器。我想出了一个主意,我应该把图表从绝对值转换成相对值,即在这种情况下,我将能够看到报价的百分比变化。它已被实施。它已经更好了,而且实际上是我们所需要的。然而,我的最终愿望是在[0:1]范围内将报价规范化。顺便说一下,这是我需要的东西,但是是资产阶级的--我想要同样的俄语版本:http://people.revoledu.com/kardi/tutorial/Similarity/Normalization.html

我已经厌倦了与之斗争。 我不能正常地删除所有待处理的订单,我只是不知道该怎么办。

我甚至在循环中加入了FOR WHILE,被删除的订单仍然存在,但我仍然没有删除它们。我有许多待处理的订单要删除,即大约20个,可能是一些复杂的问题?


对于你的第一个问题--看一下随机的
 
Desead:

需要使价格图表正常化,任何货币对都可以选择。我需要它作为一个指标。我试着用当前值除以前一个值--我得到的是1左右的某种震荡器。我想出了一个主意,我应该把图表从绝对值转换成相对值,即在这种情况下,我将能够看到报价的百分比变化。它已被实施。它已经更好了,而且实际上是我们所需要的。然而,我的最终愿望是在[0:1]范围内将报价规范化。顺便说一下,这是我需要的东西,但是是资产阶级的--我想要同样的俄语版本:http://people.revoledu.com/kardi/tutorial/Similarity/Normalization.html

我已经厌倦了与之斗争。 我不能正常地删除所有待处理的订单,我只是不知道该怎么办。

我甚至在循环中加入了FOR WHILE,被删除的订单仍然存在,但我仍然没有删除它们。我有许多待处理的订单要删除,即大约20个,可能是一些复杂的问题?


我已经试过用同样的方法放和删除所有的挂单,但我不想用其他方法。如果有人知道,你能告诉我为什么吗?
 
Sergstuddek:
大家请教一下如何使用数组,我需要在1.00到10.00的时间间隔内,选择最大和最小值收盘和开盘,我试着这样做了,但不是这样的。它给出了'[' - 数组索引是一个整数 C:\Program Files\InstaTrader\experts\Profiler19 EUR-JPY.mq4 (61, 21)
出了什么问题,如何解决

我对其进行了重新设计,具体如下

int MAX()
{
if (Hour()==10)
        {
      
        for(i=0; i<=9; i++)
        double MAX1 = High [iHighest(Symbol(), PERIOD_H1,MODE_CLOSE,i,0)];
        }
        return(MAX1);
        
}

我没有得到错误,但价格不工作,或者说它不能正确工作,问题出在哪里?

 
Sergstuddek:

我对其进行了重新设计,具体如下

它不再发出错误,但它没有检测到价格,或者说它检测到了,但不正确,问题在哪里?

只要你在10点钟方向运行程序,它就会搜索过去9个柱状物中价格最高的 柱状物指数。Hour()是程序的开始时间(服务器时间)。

P.S. 更准确地说,不是指数,而是该条的最高价(High)。

附加的文件:
 

请帮助,只要我把其他的sl和tp不工作的购买,打开地段只与销售。

#define MAGIC 1234
#define IDENT "mo_bidir"

extern int lots = 1;
extern int stop_loss = 76; //
extern int take_profit = 750; //
extern int steps = 5;// Шаг отложенных ордеров

int start(){

if (OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Blue);
OrderSend(Symbol(), OP_SELL, lots ,Bid, 3, Bid + take_profit * Point, Ask - take_profit * Point, IDENT, MAGIC, 0, Red);
OrderSend(Symbol(), OP_BUYSTOP, 0.05*lots,Ask+steps*Point, 3, Ask + stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Blue);
OrderSend(Symbol(), OP_SELLSTOP, 0.05*lots,Bid-steps*Point, 3, Bid - take_profit * Point, Ask - take_profit * Point, IDENT, MAGIC, 0, Red);
}
return(0);
} 
 
samaelfess:

请帮助,只要我把其他的sl和tp不工作的购买,打开的地段只与销售。



你有出价+止损,而不是出价+获利。对于OP_BUYSTOP的Ask + stop_loss,而不是Ask - stop_loss;对于 OP_SELLSTOP -- Bid - take_profit,而不是Bid + take_profit。

而且所有的价格都没有正常化。

P.S. 我想知道,如果没有其他的sl和tp,它是否有效?

 
谢谢你,我会更加注意的。