我将免费编写指标 - 页 44 1...373839404142434445464748495051...129 新评论 koziabrrr 2018.01.02 23:50 #431 对指标的帮助我想保持原样,但把它重做为两个缓冲区#属性 indicator_separate_window#property indicator_buffers 1#property indicator_color1 DodgerBlue#property indicator_maximum 1.4#property indicator_level1 0#property indicator_minimum -1.2//------- 外部指标参数 -------------------------------外部int CCI_Period_0 = 14; // 当前时间框架的CCI周期。extern int Level_0 = 100; // 当前TF的CCI水平。extern int TF_1 = 60; // 第一个时间范围内的分钟数extern int CCI_Period_1 = 14; // 第一个TF的CCI周期extern int Level_1 = 100; // 第一个TF的CCI水平。extern int TF_2 = 240; // 第二个TF的分钟数extern int CCI_Period_2 = 14; // 第二个TF的CCI周期extern int Level_2 = 100; // 第二个TF的CCI水平。extern int NumberOfBars = 10000; //条数(0-全部)。//------- 指示器缓冲区 ------------------------------------------double buf0[];//+------------------------------------------------------------------+//|自定义指标初始化功能//+------------------------------------------------------------------+空白的init(){IndicatorDigits(1);SetIndexBuffer(0,buf0)。SetIndexLabel(0, "i-3CCI-h")。SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2)。SetIndexEmptyValue(0,0)。}//+------------------------------------------------------------------+//|自定义指标去初始化功能|//+------------------------------------------------------------------+空白的deinit(){评论(")。}//+------------------------------------------------------------------+//|自定义指标迭代函数|//+------------------------------------------------------------------+空白启动()。{双重cci0,cci1,cci2。int nb1,nb2。int LoopBegin,sh;如果(NumberOfBars==0) LoopBegin=Bars-1;否则LoopBegin=NumberOfBars-1。LoopBegin=MathMin(Bars-1,LoopBegin)。for(sh=LoopBegin; sh>=0; sh--){nb1=iBarShift(NULL, TF_1, Time[sh], False)。nb2=iBarShift(NULL, TF_2, Time[sh], False)。cci0=iCCI(NULL, 0 , CCI_Period_0, PRICE_CLOSE, sh)。cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1)。cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2)。如果(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf0[sh]=1。if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf0[sh]=-1。}}//+------------------------------------------------------------------+我自己也在尝试,但还没有运气。这样试了一下#属性 indicator_separate_window#property indicator_buffers 2#property indicator_color1 绿色#property indicator_color2 Red#property indicator_maximum 1.4#property indicator_level1 0#property indicator_minimum -1.2//------- 外部指标参数 -------------------------------外部int CCI_Period_0 = 14; // 当前时间框架的CCI周期。extern int Level_0 = 100; // 当前TF的CCI水平。extern int TF_1 = 60; // 第一个时间框架的分钟数extern int CCI_Period_1 = 14; // 第一个TF的CCI周期extern int Level_1 = 100; // 第一个TF的CCI水平。extern int TF_2 = 240; // 第二个TF的分钟数extern int CCI_Period_2 = 14; // 第二个TF的CCI周期extern int Level_2 = 100; // 第二个TF的CCI水平。extern int NumberOfBars = 10000; //条数(0-全部)。//------- 指示器缓冲区 ------------------------------------------双倍ExtBuffer1[]。双倍ExtBuffer2[]。//+------------------------------------------------------------------+//|自定义指标初始化函数//+------------------------------------------------------------------+空白的init(){SetIndexBuffer(0,ExtBuffer1)。SetIndexStyle(0,DRAW_HISTOGRAM,0,2)。//----SetIndexBuffer(1, ExtBuffer2)。SetIndexStyle(1,DRAW_HISTOGRAM,0,2)。}//+------------------------------------------------------------------+//|自定义指标去初始化功能|//+------------------------------------------------------------------+空白的deinit(){评论(")。}//+------------------------------------------------------------------+//|自定义指标迭代函数|//+------------------------------------------------------------------+空白启动()。{双重cci0,cci1,cci2。int nb1,nb2。int LoopBegin,sh;如果(NumberOfBars==0) LoopBegin=Bars-1;否则LoopBegin=NumberOfBars-1。LoopBegin=MathMin(Bars-1,LoopBegin)。for(sh=LoopBegin; sh>=0; sh--)for(st=LoopBegin; st<0; st--){nb1=iBarShift(NULL, TF_1, Time[sh], False)。nb2=iBarShift(NULL, TF_2, Time[st], False)。cci0=iCCI(NULL, 0 , CCI_Period_0, PRICE_CLOSE, sh)。cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1)。cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2)。如果(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf1[sh]=1。if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf2[st]=-1。错误是最后,我们需要两个缓冲区,一个在零以上,一个在零以下。 附加的文件: 12121.jpg 42 kb ere.mq4 6 kb [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 I will write the [WARNING CLOSED!] Any newbie Konstantin Erin 2018.01.03 07:15 #432 亲爱的Koziabrrrr !你已经创建了你自己的主题。有更多的主题。 如果有人开始寻找一个主题怎么办?而且有很多主题,很难找到。为了便于按主题进行。最上面的主题是用来帮助新手的。这就是你的问题应该去的地方。创建的主题删除,并有写考虑到我的意见!!!。然后你还在这个主题中写道--嗯,这是自大狂,对他的个人价值有夸大的看法。为了引起注意--你需要解释任务。1.2.该指标是什么样子的=截图。 2.该指标是做什么的,它的用途是什么(进入点会显示,趋势,平坦,...)。3) 为什么我们需要两个缓冲区? 什么对它更有用(它能更好地显示趋势、平坦、入口点)?那时候大家都会抢着去提炼它!!!! ....。这对他们和你都有好处!我们应该成为朋友,分享 Konstantin Erin 2018.01.03 07:34 #433 这里有一个重做。这似乎显示了一种趋势。但这是在作弊。 半小时后,我们就会知道我们应该卖掉......而且,现在是购买的时候了 - 它是无声的... Konstantin Erin 2018.01.03 07:58 #434 这样的事情会更好。 或某种类型的MAinColor koziabrrr 2018.01.03 11:01 #435 STARIJ:这里有一个重做。这似乎显示了一种趋势。但这是在作弊。半小时后我们就会知道,我们应该卖掉...而且,现在是购买的时候了 - 它是无声的...是的,看起来好多了,谢谢你的重新设计。但我还是不明白是怎么回事)))。 Konstantin Erin 2018.01.03 11:35 #436 koziabrrr: 是的,它看起来更好,谢谢你的重新设计。但我还是不明白是怎么回事))#property indicator_buffers 2 #property indicator_color2 Tomato double buf0[], buf1[]; //------- Буферы индикатора ------ добавил второй буфер void init() { .................. SetIndexBuffer(1,buf1); SetIndexLabel(1,"Вниз"); SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2); SetIndexEmptyValue(1,0); } void start() { .................... .................. buf0[sh]=0;buf1[sh]=0; if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf0[sh]=1; if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf1[sh]=-1; } } koziabrrr 2018.01.03 13:41 #437 STARIJ: STARIJ:我正在努力,但我不能把整个事情搞清楚。当你知道这个问题时,这很好,但当你不知道时,每件小事都是一个天。 Artyom Trishkin 2018.01.03 13:49 #438 koziabrrr: 我正在努力,但我不能把整个事情搞清楚。当你知道这个问题时,这很好,但当你不知道时,每件小事都是一个天。...而每一天都是一种宝贵的经验,只有通过自己的工作才能获得--而不是通过论坛的解决方案。 koziabrrr 2018.01.03 13:58 #439 Artyom Trishkin:...而每一天都是宝贵的经验,只有来自于自己的工作--而不是论坛上的决定。这是的!STARIJ:谢谢你的帮助!!!!解决了这个问题))) hermes77 2018.01.03 22:13 #440 嗨,尤里。指标描述:当从3根蜡烛开始保持在同一水平上或几乎在同一水平上时.它向电子邮件发出警报并传送声音。还在屏幕上显示仪器和时间框架,直到我取消它。请看附件中的文件,其中有一些例子 附加的文件: 11.png 25 kb 12.png 24 kb 13.png 24 kb 14.png 27 kb 1...373839404142434445464748495051...129 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
对指标的帮助
我想保持原样,但把它重做为两个缓冲区
#属性 indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
#property indicator_maximum 1.4
#property indicator_level1 0
#property indicator_minimum -1.2
//------- 外部指标参数 -------------------------------
外部int CCI_Period_0 = 14; // 当前时间框架的CCI周期。
extern int Level_0 = 100; // 当前TF的CCI水平。
extern int TF_1 = 60; // 第一个时间范围内的分钟数
extern int CCI_Period_1 = 14; // 第一个TF的CCI周期
extern int Level_1 = 100; // 第一个TF的CCI水平。
extern int TF_2 = 240; // 第二个TF的分钟数
extern int CCI_Period_2 = 14; // 第二个TF的CCI周期
extern int Level_2 = 100; // 第二个TF的CCI水平。
extern int NumberOfBars = 10000; //条数(0-全部)。
//------- 指示器缓冲区 ------------------------------------------
double buf0[];
//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
空白的init()
{
IndicatorDigits(1);
SetIndexBuffer(0,buf0)。
SetIndexLabel(0, "i-3CCI-h")。
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2)。
SetIndexEmptyValue(0,0)。
}
//+------------------------------------------------------------------+
//|自定义指标去初始化功能|
//+------------------------------------------------------------------+
空白的deinit()
{
评论(")。
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
空白启动()。
{
双重cci0,cci1,cci2。
int nb1,nb2。
int LoopBegin,sh;
如果(NumberOfBars==0) LoopBegin=Bars-1;
否则LoopBegin=NumberOfBars-1。
LoopBegin=MathMin(Bars-1,LoopBegin)。
for(sh=LoopBegin; sh>=0; sh--)
{
nb1=iBarShift(NULL, TF_1, Time[sh], False)。
nb2=iBarShift(NULL, TF_2, Time[sh], False)。
cci0=iCCI(NULL, 0 , CCI_Period_0, PRICE_CLOSE, sh)。
cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1)。
cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2)。
如果(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf0[sh]=1。
if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf0[sh]=-1。
}
}
//+------------------------------------------------------------------+
我自己也在尝试,但还没有运气。
这样试了一下
#属性 indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 绿色
#property indicator_color2 Red
#property indicator_maximum 1.4
#property indicator_level1 0
#property indicator_minimum -1.2
//------- 外部指标参数 -------------------------------
外部int CCI_Period_0 = 14; // 当前时间框架的CCI周期。
extern int Level_0 = 100; // 当前TF的CCI水平。
extern int TF_1 = 60; // 第一个时间框架的分钟数
extern int CCI_Period_1 = 14; // 第一个TF的CCI周期
extern int Level_1 = 100; // 第一个TF的CCI水平。
extern int TF_2 = 240; // 第二个TF的分钟数
extern int CCI_Period_2 = 14; // 第二个TF的CCI周期
extern int Level_2 = 100; // 第二个TF的CCI水平。
extern int NumberOfBars = 10000; //条数(0-全部)。
//------- 指示器缓冲区 ------------------------------------------
双倍ExtBuffer1[]。
双倍ExtBuffer2[]。
//+------------------------------------------------------------------+
//|自定义指标初始化函数
//+------------------------------------------------------------------+
空白的init()
{
SetIndexBuffer(0,ExtBuffer1)。
SetIndexStyle(0,DRAW_HISTOGRAM,0,2)。
//----
SetIndexBuffer(1, ExtBuffer2)。
SetIndexStyle(1,DRAW_HISTOGRAM,0,2)。
}
//+------------------------------------------------------------------+
//|自定义指标去初始化功能|
//+------------------------------------------------------------------+
空白的deinit()
{
评论(")。
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
空白启动()。
{
双重cci0,cci1,cci2。
int nb1,nb2。
int LoopBegin,sh;
如果(NumberOfBars==0) LoopBegin=Bars-1;
否则LoopBegin=NumberOfBars-1。
LoopBegin=MathMin(Bars-1,LoopBegin)。
for(sh=LoopBegin; sh>=0; sh--)
for(st=LoopBegin; st<0; st--)
{
nb1=iBarShift(NULL, TF_1, Time[sh], False)。
nb2=iBarShift(NULL, TF_2, Time[st], False)。
cci0=iCCI(NULL, 0 , CCI_Period_0, PRICE_CLOSE, sh)。
cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1)。
cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2)。
如果(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf1[sh]=1。
if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf2[st]=-1。
错误是
最后,我们需要两个缓冲区,一个在零以上,一个在零以下。
亲爱的Koziabrrrr !你已经创建了你自己的主题。有更多的主题。 如果有人开始寻找一个主题怎么办?而且有很多主题,很难找到。为了便于按主题进行。最上面的主题是用来帮助新手的。这就是你的问题应该去的地方。创建的主题删除,并有写考虑到我的意见!!!。然后你还在这个主题中写道--嗯,这是自大狂,对他的个人价值有夸大的看法。
为了引起注意--你需要解释任务。1.2.该指标是什么样子的=截图。 2.该指标是做什么的,它的用途是什么(进入点会显示,趋势,平坦,...)。3) 为什么我们需要两个缓冲区? 什么对它更有用(它能更好地显示趋势、平坦、入口点)?那时候大家都会抢着去提炼它!!!! ....。这对他们和你都有好处!我们应该成为朋友,分享
而且,现在是购买的时候了 - 它是无声的...
这里有一个重做。这似乎显示了一种趋势。但这是在作弊。
半小时后我们就会知道,我们应该卖掉...
而且,现在是购买的时候了 - 它是无声的...
是的,看起来好多了,谢谢你的重新设计。但我还是不明白是怎么回事)))。
我正在努力,但我不能把整个事情搞清楚。当你知道这个问题时,这很好,但当你不知道时,每件小事都是一个天。
我正在努力,但我不能把整个事情搞清楚。当你知道这个问题时,这很好,但当你不知道时,每件小事都是一个天。
...而每一天都是宝贵的经验,只有来自于自己的工作--而不是论坛上的决定。
这是的!
STARIJ:谢谢你的帮助!!!!
解决了这个问题)))
嗨,尤里。
指标描述:当从3根蜡烛开始保持在同一水平上或几乎在同一水平上时.它向电子邮件发出警报并传送声音。还在屏幕上显示仪器和时间框架,直到我取消它。请看附件中的文件,其中有一些例子