#property indicator_separate_window#property indicator_buffers 1// Количество буферов#property indicator_color1 Blue // Цвет первой линии#property indicator_minimum 0#property indicator_maximum 25double Buf_0[]; // Объявление массивов (под буферы индикатора)//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{
//---- indicatorsSetIndexBuffer(0,Buf_0); // Назначение массива буферу SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии //----return(0);
}
//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----//----return(0);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start()
{
//----int i; // Индекс бара int Counted_bars; // Количество просчитанных баровint m;
int MaxSpeed;
int Speed;
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанного while(i>=0) // Цикл по непосчитанным барам
{
MaxSpeed=0;
if (Period()==PERIOD_H1)
{
m=59;
while (m>=0)
{
Speed=(iOpen(Symbol(),PERIOD_M1,m+60*i)-iClose(Symbol(),PERIOD_M1,m+60*i))/Point;
if (MaxSpeed<Speed)
{
MaxSpeed=Speed;
}
m--;
}
}
if (Period()==PERIOD_M1)
{
m=0;
while (m>=0)
{
Speed=(iOpen(Symbol(),PERIOD_M1,m+i)-iClose(Symbol(),PERIOD_M1,m+i))/Point;
if (MaxSpeed<Speed)
{
MaxSpeed=Speed;
}
m--;
}
}
Buf_0[i]=MaxSpeed; // Значение 0 буфера на i-ом баре
i--; // Расчёт индекса следующего бара
}
//----return(0);
}
//+------------------------------------------------------------------+
在一个分形上!我试着用止损--它正在失去,我想用分形的止损来试试,但我不知道如何在条件中写出它。或者在EA中如何写,我已经写了一个进入条件,类似这样的条件
如果(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&)
iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&
iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&
iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)
{...???
}
我怀疑从你的代码来看,对话是关于分形的。一些开盘价 和收盘价 在4个时期。
在一个分形上!我试着用止损--它正在失去,我想用分形的止损来试试,但我不知道如何在条件中写出它。或者在EA中如何写,我已经写了一个进入条件,类似这样的条件
如果(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&)
iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&
iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&
iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)
{...???
}
为了测试该策略,你可以通过分形找到一个追踪止损功能,并将其纳入你的EA中,这对你来说比较容易。或者你可以自己写。
该功能将把每个打开位置的止动器移动到设置中所设定的必要分形。然后,根据测试结果,我们已经可以考虑是否应该使用这种拖网,或者在价格达到分形水平时关闭 市场头寸。这两件事都不是一件容易的事。
标准函数 iFractals() 将帮助你。它返回发现分形的价格,如函数参数中所指定。
请帮助我,我的指标在一个小时的时间框架上测量当前小时的最大分钟运动,前6个小时(小节)它充分测量了一切,然后开始在代码本身和指标下面出现一些非法值,告诉我哪里出错了,虽然我不关心超过3个小节的值,但我担心错误可能发生在第一个小节。
我想我在第一条上可能有一些错误。请帮助我,我的指标在一个小时的时间框架上测量当前小时的最大分钟运动,前6个小时(小节)它充分测量了一切,然后开始在代码本身和指标下面出现一些非法值,请告知我哪里出错了,虽然我不关心超过3个小节的值,但我担心错误可能发生在第一个小节。
我原来有一个不同的指示器,我把它拆开并 "焊接 "了我的代码你想得到什么?
Vinin:
你想得到什么?
我想让指标在分钟条中显示iOpen-iClose的最大值,但对于HOUR来说,例如一小时的59分钟条iOpen-iClose=3(例如),一分钟条iOpen-iClose=10,在一小时的时间框架上,它必须显示10,没有任何偏差,我需要指标关闭订单,如果突然,超过一分钟的速度在错误的方向上过快,那么顾问将是一个关闭信号。
这是它的第一个版本,以后我希望它能够检测到价格的走向。
如果你点击一个图形对象,例如一条水平线,你可以在打开的窗口中看到一个 "描述"。
- 有没有可能从代码中添加一个 "描述"?
谢谢你!
如果你点击一个图形对象,例如一条水平线,你可以在打开的窗口中看到一个 "描述"。
- 有没有可能从代码中添加一个 "描述"?
谢谢你!
https://docs.mql4.com/ru/objects/ObjectSetText
这正是我所需要的!谢谢你!
拉扎列夫-丹尼斯
最初的计数是59条,这是不正确的。分钟数可能有差距,最后一个小时条可能包含较少的分钟数。
你应该取小时条的开盘和收盘时间(Time[i])。用这个时间来计算iBarShift分钟的偏移量,然后在这个偏移量的范围内计算出最大值。
顺便问一下,指标在一分钟时间内应该显示什么?
如果数字是正的,价格就会上升,如果数字是负的--就会下降,返回数字的模数将显示运动的强度。