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

 
Craft:

下午好。

你能告诉我如何在一个数组中找到最高收盘价吗?

double hc = iClose(NULL, 0, iHighest(Symbol(), 0, MODE_HIGH, PERIOD_M1, kk)) 。

是这样做的还是我弄错了?

我通过搜索 "最高关口 "没有找到任何答案。

也许是这样的。

string sym;int PER=1;//таймфрейм
//+------------------------------------------------------------------+
//| script program                                                   |
//+------------------------------------------------------------------+
int init(){sym=Symbol();return(0);}
int start(){int bar=iHighest(sym,PER,MODE_CLOSE,iBars(sym,PER)-1,0);
  double hc=iClose(NULL,PER,bar);Print(sym," PERIOD_M",PER,"  max_close =",hc,"  Time =",
  TimeToStr(iTime(NULL,PER,bar),TIME_DATE|TIME_MINUTES));return(0);}
//+------------------------------------------------------------------+
 
MikeM:
Time[i] - 时间,对应于图表上的第i条。
我不明白图表上的 "明天 "数据。他们在哪里展示?我想要ooh-ooh-ooh!!!。

这是我的指标的一个非常旧的版本...
我只是在计算条形图的正确时间,以便将箭头放在那里 - 但这不是正确的版本,因为在某些情况下,它是假期,只是交易时段的时间和工具(在这种情况下,它是sberbank)。

我现在已经完全重写了代码,我希望它是可以的......

我想在最后一个蓝色箭头下的X轴上获得=)时间值,以检查位置。

事实上,新版指标的数组中已经包含了下一个箭头沿X轴(时间)和价格的位置信息,剩下的就是将其转移到图表.....,帮帮我,告诉我怎么做才好。

旧版本的屏幕截图...

с

 
这里的任何人都在回答问题)
 

下午好。你能不能告诉我,在这些条件下,订单不会通过水平线打开。这里有什么问题吗?

double Mash_Price_1=iCustom(NULL,0,"mashka",0,0);
double Mash_Price_2=iCustom(NULL,0,"mashka",0,1);
double Mash_Price_3=iCustom(NULL,0,"mashka",0,2);

double Max_1,Max_2; //уровень цены 

if(Mash_Price_1>Max_1 && Mash_Price_2==Max_1 && Mash_Price_3<Max_1 || 

Mash_Price_1>Max_1 && Mash_Price_2 < Max_1 && Mash_Price_3<Max_1 ||

Mash_Price_1>Max_1 && Mash_Price_2==Max_1 && Mash_Price_3==Max_1)
{
Opn_B=true;
Opn_S=false;
}
if(Mash_Price_1<Min_1 && Mash_Price_2==Min_1 && Mash_Price_3>Min_1 ||
Mash_Price_1<Min_1 && Mash_Price_2 > Min_1 && Mash_Price_3>Min_1 ||
Mash_Price_1<Min_1 && Mash_Price_2==Min_1 && Mash_Price_3==Min_1)
{
Opn_B=false;
Opn_S=true;
}
}



while(true)
{
if(Total==0 && Opn_B==true)
{
RefreshRates();
SL=Bid-New_Stop(StopLoss)*Point;
TP=Bid+New_Stop(TakeProfit)*Point;
Print("Попытка открыть Buy. Ожидаем ответа...");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);
if(Ticket>0)
{
Print("Открыт ордер Buy ",Ticket);
return;
}
if(Fun_Error(GetLastError())==1)
continue;
return; 
}

if(Total==0 && Opn_S==true)
{
RefreshRates();
SL=Ask+New_Stop(StopLoss)*Point;
TP=Ask-New_Stop(TakeProfit)*Point;
Print("Попытка открыть Sell. Ждем ответа...");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP);
if(Ticket>0)
{
Print("Открыт ордер Sell ",Ticket);
return;
}
if(Fun_Error(GetLastError())==1)
continue;
return;
}
 
deyron:

下午好。你能不能告诉我,在这些条件下,订单不会通过水平线打开。这里有什么问题吗?


有一个用于插入代码 的按钮SRC

你有什么证据表明这些变量等于?

double Max_1,Max_2; //уровень цены 
 
int Bar_Beg = iBarShift(Symbol(),0,Cur_Beg,false);//начальный бар
int Bar_End = iBarShift(Symbol(),0,Cur_End,false);//конечный бар
int Dif_Bar = Bar_Beg - Bar_End;//Разница баров для расчетов Мах и Мин

int High_1 = iHighest(Symbol(),0,MODE_HIGH,Dif_Bar,Bar_End); //Максимальное значение бара
int Low_1 = iLowest (Symbol(),0,MODE_HIGH,Dif_Bar,Bar_End); //Минимальное значение бара

Max_1=High[High_1];
Min_1=Low[Low_1];

而Mashka=(High[i]+Low[i])/2。

 
deyron:

这里是马什卡与Min_1级。

这里有一个选择,如果。


绿色的Max_1。

从历史上看

Max_1 = 1.5485 Min_1 = 1.5461 Mash_Price_1 = 1.5496 Mash_Price_2 = 1.5495 Mash_Price_3 = 1.549

你在哪个方向上寻找麻烦?

你试过错误处理 吗?
 
如果有人试图打开一个订单,信息中会有一个错误。如果没有试图打开一个订单,为什么会有一个错误。问题是马查通过层级的条件是否设置正确。当参数是硬编码的时候,为什么订单的打开时间比预期的晚很多?
 

问题。

为什么病情没有好转

如果(Close_1>Open_1 && ( Close_1-Open_1)>=30*Point) buffer[i]=High_1;

有条件的例子。\

寻找一切......但不是在点的大小......通过Comment(waste,5)检查了它。

例如...如果(Close_1>Open_1)条件看起来不错,但条件(Close_1>Open_1 && Close_1-Open_1)>=30*Point)为什么不...!

我做错了什么?

提前感谢!))。

 
deyron:
如果有人试图打开一个订单,它将显示在信息中。如果没有试图打开一个订单,为什么会有一个错误。问题是马查通过层级的条件是否设置正确。当参数是硬编码的时候,为什么订单的打开时间比预期的晚很多?

在正确的地方使用Print()和GetLastError()会回答你所有的问题。