[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 295

 

谢谢。原则上,只要把"||"换成"&&"(我可能是想检查不平等,然后继续),一切都会正常,但在测试器中,无论如何都会正常。当然,你的版本会更正确。

 

嗯,这些是细微的差别。我仍然试图改写它以适应我的需要。例如,我根本不需要medjic选择(在这个功能中)。我还注意到,函数Figar0 中的选择是来自历史列表。这里最主要的是要理解这个想法。顺便说一下,我需要来自游泳池的订单,所以这一切都变得更容易了。

谢谢大家的想法和帮助。

PS: 并请解释一下

OrderType()>1
我曾多次看到,OrderType 被比作int。 这里有什么诀窍?我以为这是一个字符串 变量。
 
Pyro:

嗯,这些是细微的差别。我仍然试图改写它以适应我的需要。例如,我根本不需要medjic选择(在这个功能中)。我还注意到,函数Figar0 中的选择是来自历史列表。这里最主要的是要理解这个想法。顺便说一下,我需要来自游泳池的订单,所以这一切都变得更容易了。

谢谢大家的想法和帮助。

PS:你能解释一下以下情况吗?

我曾几次看到OrderType 被比作int。这里有什么诀窍?我以为这是一个字符串 变量。

这是一个常数和它们的值之间的对应关系。

OP_BUY对应的是0

OP_SELL对应的是1

__________________________________________________________________________________________________________-

OrderSend() 函数的操作类型。 可以是以下任何一个值。

恒定 价值 描述
OP_BUY 0 购买
销量 1 出售
OP_BUYLIMIT 2 买入上限挂单
OP_SELLLIMIT 3 悬而未决的卖出限价单
OP_BUYSTOP 4 悬而未决的买入止损单
OP_SELLSTOP 5 悬而未决的卖出止损单
 
Pyro:

顺便说一下,我需要来自游泳池的订单,所以结果要简单得多。

当通过索引选择一个订单时,使用两个列表--开放和封闭。这是通过指定你想在哪个列表中看到它们来设置的(参数)。

因此,如果我们需要从未结订单的列表中选择,那么我们可以省略指定这个参数(默认情况下,它是被设置的)。如果我们想从已关闭的订单列表中选择,我们应该指定MODE_HISTORY作为 参数。

相应地,如果你想找到最后一个开放的订单,循环是在终端的开放订单上进行的,你也应该检查开放的时间OrderOpenTime(),如果你需要最后一个关闭的订单(如上面的例子),循环应该是在终端的关闭订单上进行的,你应该检查OrderCloseTime()以找出所选订单关闭的时间。

而供你参考的是,如果你按票据选择,参数池将 完全被忽略,而订单将在两个列表中找到。一旦找到该订单,我们必须检查其关闭时间,以找出该订单是从哪个列表中被选中的。如果平仓时间高于零,说明该订单已经平仓,并已从平仓订单列表中选出。如果一个未平仓订单的平仓时间总是等于零。因此,如果它等于零,该订单已经从未结订单列表中被选中。

此外,如果你通过票据搜索一个待处理订单,它可以出现在两个列表中。如果它被转换为市场订单,就会发生这种情况。因此,你还需要检查你所选择的订单类型。如果挂单被关闭,而同一票据的市价单没有被关闭,这意味着挂单已被转化为市价单。

 
Figar0:

谢谢。原则上,只要把"||"换成"&&"(我可能是想检查不平等,然后继续),一切都会正常,但在测试器中,无论如何都会正常。当然,你的版本会更正确。

我自己在这里发布代码时有时会犯一些愚蠢的错误...然后我像烫伤一样纠正代码,然后再以不恰当的形式阅读......:)))
 
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 2

extern int period=24;
double Buf_0[],Buf_1[];

//+------------------------------------------------------------------+
int init()
  {
//---- 
   SetIndexBuffer(0,Buf_0);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
   SetIndexBuffer(1,Buf_1);
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
//----
   return;
  }
//+------------------------------------------------------------------+
int start()
  {
   int  i,counted_bars,maxValueIdx,minValueIdx; 
//----

   counted_bars=IndicatorCounted();
   i=Bars-counted_bars-1;
   
   while(i>=0)
   {
   maxValueIdx=ArrayMaximum(Close,(period-1),0); 
   minValueIdx=ArrayMinimum(Close,(period-1),0);
   Buf_0[i]=Close[maxValueIdx];
   Buf_1[i]=Close[minValueIdx];
   i--;
   }
   
   
//----
   return;
  }
//+------------------------------------------------------------------+
你好,我想写一个指标,读取一定时期内收盘价的最大值和最小值。我正在按照教程操作,但旧的数据根本没有显示,它显示的是两条水平线,上面是当前的MAX和MIN。你能告诉我我做错了什么吗?
 
borisis:
你好,我想写一个指标,计算某一时期的收盘价的最大值和最小值。就像我在教程中所做的那样,但是旧的数据根本就没有画出来,它显示的是两条水平线,分别是当前的MAX和MIN。你能告诉我我做错了什么吗?


maxValueIdx=ArrayMaximum(Close,(period-1), i);

minValueIdx=ArrayMinimum(Close,(period-1), i)。

否则你就会在每一步都找到相同的索引

 

大家好!如何通过编程找出变量的类型:int OR double?

其次,"无效的双数作为DoubleToStr函数 的参数1 "这个错误是什么意思?

 
todem:

大家好!我如何知道一个变量的类型:int OR double?

很好奇为什么?你能描述一个需要这样做的情况吗?
 
动议。

Valdemar 01.04.2011 16:31
向所有的编程大师问好!提示一下正确的思路,如果你不介意:在这里我,说我决定在某一小时的交易结束后,放一个止损单,推离该小时的高点和低点几个点,我应该用什么,写一个编程函数