[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 236

 

同事们,我有点糊涂了。

你需要用指标在两点之间画一条线


   SetIndexShift(0, DRAW_SECTION);
   SetIndexBuffer(0, z1);

   z1[1]=1.5;
   z1[2]=EMPTY_VALUE;
   z1[3]=EMPTY_VALUE;
   z1[4]=EMPTY_VALUE;
   z1[5]=EMPTY_VALUE;
   z1[6]=1.4;

它不是这样工作的,对吗?
 
neoclassic >> :

同事们,有点疑惑。

你需要用指标在两点之间画一条线

你看一下SetIndexShift的帮助。错误的功能。你的是SetIndexStyle。

PS:如果你用y=kx+b的公式画线,那么该指标将

对每两个点都有定义:-)。

 
jartmailru >> :

你看一下SetIndexShift的帮助。错误的功能。你的是SetIndexStyle。

PS:如果你用y=kx+b的公式画线,指标将

为每两个点定义:-)。

这就是发生的情况,写了不止一个指标,换挡器与梃杆混在一起:-)没有错误,我放松了....。谢谢 :-)

 

伙计们,你们能不能帮我把指标改成和抛物线一起画一个椭圆,我想比较一下EA的结果。在我看来,椭圆比抛物线更适合用于止损。有没有人有这样的指标。基于椭圆?我想与抛物线的结果进行比较。

附加的文件:
 
001 писал(а)>>

伙计们,你们能不能帮我把指标改成和抛物线一起画一个椭圆,我想比较一下EA的结果。在我看来,椭圆比抛物线更适合用于止损。有没有人有这样的指标。基于椭圆?预先感谢你。

我曾尝试在我的专家顾问中把这个指标作为一个外部指标来连接。我不明白哪里出了问题。

我的指标里有以下信息

外来的双倍Step=0.0513。
外置双倍最大值=0.46。

在我的专家顾问中。

外部的双倍stepstop=0.005。
外置双倍的maximumstepstop=0.05。

double sarstop=iCustom(NULL,0, "ParabolicM",stepstop,maximumstepstop,0,0)。

结果是。

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0.8625

这意味着读数没有变化

 

你好!


我有一个关于专家顾问逻辑的问题,由于缺乏任何编程经验,我呼吁那些了解它的人。

我有一个代码(在一个西方论坛上找到的,可惜不记得作者的名字了),它应该是在四个时间段上注册随机指标的 线的交点。如果主线在所有时间段都高于信号线,则执行开单的代码。这个想法当然很好,但它的实施引起了很多问题。 在运行它的历史记录后,我看到有时当事件只在一个时间范围内注册时,订单就会被打开。我不明白可能是什么问题,因为看起来基本条件已经到位。


如有任何帮助,我将不胜感激!



double M1, S1, M2, S2, M3, S3, M4, S4;

string Sig;
string St;
double ticket;

int start()
{
M1=iStochastic(NULL,PERIOD_M15,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S1=iStochastic(NULL,PERIOD_M15,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);

M2=iStochastic(NULL,PERIOD_M30,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S2=iStochastic(NULL,PERIOD_M30,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);
M3=iStochastic(NULL,PERIOD_H1,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S3=iStochastic(NULL,PERIOD_H1,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);
M4=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S4=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);

St = "READY";

Sig = "NONE";

if(M1>S1, M2>S2 && M3>S3 && M4>S4)
{
Sig="LONG";
}
if(M1<S1, M2<S2 && M3<S3 && M4<S4)
{
Sig="SHORT";
}

if(St=="READY" && Sig=="LONG")
{
ticket=OrderSend(Symbol(),OP_BUY,LotSize,Ask,5,Bid-SL*Point,Bid+TP*Point,LongComment,Magic,0,Blue);
if(ticket>-1)
{
St="LONG ON";
}
}

if(St=="READY" && Sig=="SHORT")
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,5,Ask+SL*Point,Ask-TP*Point,ShortComment,Magic,0,Red);
if(ticket>-1)
{
St="SHORT ON";
}
}

}

 
if-t >> :

你好!

我有一个代码(我在一个西方论坛上找到的,可惜我不记得作者的名字了),据说是......

.....,发现有时一个事件只在一个时间框架上登记时,订单就会打开。

将感谢您的帮助!



也许问题在于这个奇怪的条目。

if(M1>S1, M2>S2 && M3>S3 && M4>S4)
这是什么意思?-
(M1>S1, M2>S2

也许可以用操作符"&&"来代替逗号?(用于买入和卖出)

 
rid >> :

也许问题在于这个奇怪的条目。

这是什么意思?-

也许可以用操作符"&&"来代替逗号?(用于买入和卖出)

Rid,非常感谢您的回答!您的回答是:"是的。我在重新安排变量时犯了这个错误(我的头已经肿了,我犯了原始的错误)。原来的变体是正确的。

if(M1>S1 && M2>S2 && M3>S3 && M4>S4)

但这并不奏效。我一直在想,也许St变量并不总是得到正确的值?尽管事实上,如果条件没有得到满足,代码就不能被执行......。总的来说,我是一个像芭蕾舞演员一样的程序员,没有专业人士的帮助,我就是做不到......


 

顺便说一下,我试着插入一个打印出来的东西,但变量似乎可以得到正确的值。

 

我试着写了我的第一个指标,但它只画了一条线而不是两条。

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//---- buffers
double Buf_1[], Buf_2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_1);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    i, 
          Counted_bars=IndicatorCounted();
//----
i=Bars- Counted_bars-1;           // Индекс первого непосчитанного
   while( i>=0) 
      {  
       Buf_1[ i]= Close[ i]; 
       Buf_2[ i]= Open[ i];
       i--;
      }
 
//----
   return(0);