再见,机器人--你好,沼泽地。 - 页 5 123456789101112...16 新评论 [删除] 2014.09.10 12:49 #41 我建议如下:在这里或在我的私人信息中附上指标(以前工作的指标,没有改动),我将予以纠正。 pansa 2014.09.10 14:24 #42 Pavlick: 我建议如下:在这里或在我的私人信息中附上指标(以前工作的变体,没有改动),我将对其进行修正。 嗨,Pavlik! 这就是版本。 原始的。 尝试拖动代码 豆瓣酱 //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2.mq4 //|Ramdass - 仅限转换 //+------------------------------------------------------------------+ #财产版权 "作者 - OlegVS, GOODMAN" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Chartreuse #property indicator_color2 黄色 #property indicator_width1 2 #property indicator_width2 2 //---- 输入参数 外部int K=30。 外置双Kstop=0.5。 外在的,内在的,Kperiod=150。 外来的PerADX=14。 外在的CountBars=350。 外来的intON=1; //zakton的 //---- 缓冲区 double val1[]; double val2[]; //+------------------------------------------------------------------+ //|自定义指标初始化功能 //+------------------------------------------------------------------+ int init() { string short_name; //----指标线 IndicatorBuffers(2)。 SetIndexStyle(0,DRAW_ARROW)。 SetIndexArrow(0,159); SetIndexStyle(1,DRAW_ARROW)。 SetIndexArrow(1,159); SetIndexBuffer(0,val1)。 SetIndexBuffer(1,val2)。 //---- return(0); } //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2| //+------------------------------------------------------------------+ int start() { 如果(CountBars>=Bars) CountBars=Bars。 SetIndexDrawBegin(0,Bars-CountBars+PerADX)。 SetIndexDrawBegin(1,Bars-CountBars+PerADX)。 int i,shift,counted_bars=IndicatorCounted()。 int i1,i2; double Range,AvgRange,smin,smax,ssMax,ssMin,SSP,price; bool uptrend,old; //---- if(Bars<=PerADX+1) return(0); //---- 初始零点 如果(counted_bars<PerADX+1) { for(i=1;i<=PerADX;i++) val1[CountBars-i]=0.0; for(i=1;i<=PerADX;i++) val2[CountBars-i]=0.0; } //---- for (shift = CountBars-PerADX; shift>=0; shift--) { SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1)) 。 范围=0。 平均范围=0。 for (i1=shift; i1<=shift+SSP; i1++) {AvgRange=AvgRange+MathAbs (High[i1]-Low[i1])。 } 范围=AvgRange/(SSP+1)。 SsMax=High[shift]; SsMin=Low[shift]。 for (i2=shift;i2<=shift+SSP-1;i2++) { 价格=高[i2]。 如果(SsMax<price) SsMax=price。 price=Low[i2]; 如果(SsMin>=price) SsMin=price 。 } smin = SsMin+(SsMax-SsMin)*K/100。 smax = SsMax-(SsMax-SsMin)*K/100。 val1[shift]=0。 val2[shift]=0。 如果(Close[shift]<smin) { uptrend = false。 } 如果(Close[shift]>smax) { 上升趋势 =真。 } if (uptrend!=old && uptrend=true) {val1[shift]=Low[shift]-Range*Kstop;}. if (uptrend!=old && uptrend==false) {val2[shift]=High[shift]+Range*Kstop;}. old=uptrend。 // zakton的代码 如果((shift == 0) && (SoundON == 1)) { 如果(val1[0] > 0)PlaySound("ReadyToExit.wav")。 } 如果((shift == 0) && (SoundON == 1)) { 如果(val2[0]>0)PlaySound("ReadyToExit.wav")。 } } return(0); } //+-------------------------------------------------------- 信号系统(ASCTrend和其他修改)。 Goodbye robot - hello [存档!]我将免费撰写任何专家或指标。 Boris 2014.09.10 14:46 #43 pansa: 嗨,Pavlik! 这就是版本。 原始的。 尝试拖动代码 豆瓣酱 尊敬的女士们、先生们潘萨!为什么不使用SRC 按钮来输入密码?你有什么疑问吗?//+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2.mq4 //| Ramdass - Conversion only //+------------------------------------------------------------------+ #property copyright "Author - OlegVS, GOODMAN" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Chartreuse #property indicator_color2 Yellow #property indicator_width1 2 #property indicator_width2 2 //---- input parameters extern int K=30; extern double Kstop=0.5; extern int Kperiod=150; extern int PerADX=14; extern int CountBars=350; extern int SoundON=1; //zakton's //---- buffers double val1[]; double val2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- indicator line IndicatorBuffers(2); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,159); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,159); SetIndexBuffer(0,val1); SetIndexBuffer(1,val2); //---- return(0); } //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2 | //+------------------------------------------------------------------+ int start() { if (CountBars>=Bars) CountBars=Bars; SetIndexDrawBegin(0,Bars-CountBars+PerADX); SetIndexDrawBegin(1,Bars-CountBars+PerADX); int i,shift,counted_bars=IndicatorCounted(); int i1,i2; double Range,AvgRange,smin,smax,SsMax,SsMin,SSP,price; bool uptrend,old; //---- if(Bars<=PerADX+1) return(0); //---- initial zero if(counted_bars<PerADX+1) { for(i=1;i<=PerADX;i++) val1[CountBars-i]=0.0; for(i=1;i<=PerADX;i++) val2[CountBars-i]=0.0; } //---- for (shift = CountBars-PerADX; shift>=0; shift--) { SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1)); Range=0; AvgRange=0; for (i1=shift; i1<=shift+SSP; i1++) {AvgRange=AvgRange+MathAbs(High[i1]-Low[i1]); } Range=AvgRange/(SSP+1); SsMax=High[shift]; SsMin=Low[shift]; for (i2=shift;i2<=shift+SSP-1;i2++) { price=High[i2]; if(SsMax<price) SsMax=price; price=Low[i2]; if(SsMin>=price) SsMin=price; } smin = SsMin+(SsMax-SsMin)*K/100; smax = SsMax-(SsMax-SsMin)*K/100; val1[shift]=0; val2[shift]=0; if (Close[shift]<smin) { uptrend = false; } if (Close[shift]>smax) { uptrend = true; } if (uptrend!=old && uptrend==true) {val1[shift]=Low[shift]-Range*Kstop;} if (uptrend!=old && uptrend==false) {val2[shift]=High[shift]+Range*Kstop;} old=uptrend; // zakton's code if ((shift == 0) && (SoundON == 1)) { if (val1[0] > 0) PlaySound("ReadyToExit.wav"); } if ((shift == 0) && (SoundON == 1)) { if (val2[0] > 0) PlaySound("ReadyToExit.wav"); } } return(0); } //+--------------------------------------------------------祝您好运! Victor Nikolaev 2014.09.10 15:10 #44 pansa: 嗨,Pavlik! 这就是版本。 原始的。 尝试拖动代码 豆瓣酱 该指标可以使用,但开发者在其中犯了一个逻辑错误SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1)); Victor Nikolaev 2014.09.10 15:14 #45 //+------------------------------------------------------------------+ //| sample_execute_script.mq4 | //+------------------------------------------------------------------+ #import "user32.dll" int RegisterWindowMessageW(string MessageName); int PostMessageW(int hwnd, int msg, int wparam, string Name); void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo); #import int start() { int winHandle = WindowHandle( Symbol(), Period() ); // // // if(signal < 0 && trigl==true && buy == true) { StartScript(winHandle, "SchliesenProfitOrders" ); } // // // } void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false) { int MessageNumber = RegisterWindowMessageW("MetaTrader4_Internal_Message"); PostMessageW(hWnd, MessageNumber, 16, ScriptName); if (AutomaticallyAcceptDefaults) { ClearConfigDialog(); } } void ClearConfigDialog() { Sleep(100); keybd_event(13, 0, 0, 0); } // // // return(0); 这就是罗氏所谈论的内容 [删除] 2014.09.11 02:25 #46 好吗?//+------------------------------------------------------------------+ //| AltrTREND_Signal.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2_alert.mq4 | //| Ramdass - Conversion only | //+------------------------------------------------------------------+ #property copyright "Author - OlegVS, GOODMAN" #property strict #import "user32.dll" int RegisterWindowMessageA(uchar &lParam[]); int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]); void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo); #import #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 DeepSkyBlue #property indicator_color2 OrangeRed #property indicator_width1 1 #property indicator_width2 1 //---- input parameters extern bool Alert_message = true; extern int Time_alert_minutes = 60; // ????? ????? ?????????? ???? ??? ? 60 ?????. extern int K = 30; extern double Kstop = 0.5; extern int Kperiod = 150; extern int PeriodADX = 7;//14; extern int CountBars = 100; extern string script_name = "fPlayer"; //---- buffers double val1[]; double val2[]; double AlertTime; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicator line IndicatorBuffers(1); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,241); IndicatorBuffers(2); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,242); SetIndexBuffer(0,val1); SetIndexBuffer(1,val2); if(CountBars>=Bars) CountBars=Bars; SetIndexDrawBegin(0, Bars - CountBars + PeriodADX ); SetIndexDrawBegin(1, Bars - CountBars + PeriodADX ); //---- return(0); } //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2 | //+------------------------------------------------------------------+ int start() { int shift, counted_bars = IndicatorCounted(); //---- if(counted_bars<0) return(-1); //---- int i1, i2, t_per; double Range, AvgRange, smin, smax, SsMax, SsMin, SSP, price; bool uptrend, old; //---- if(Bars <=PeriodADX + 1) return(0); //---- for(shift = CountBars - PeriodADX ; shift >= 0; shift--) { SSP = MathCeil(Kperiod / iADX(NULL, 0, PeriodADX , PRICE_CLOSE, MODE_MAIN, 1)); Range = 0; AvgRange = 0; for(i1 = shift; i1 <= shift + SSP; i1++) { AvgRange = AvgRange + MathAbs(High[i1] - Low[i1]); } Range = AvgRange / (SSP + 1); //---- SsMax = High[shift]; SsMin = Low[shift]; for(i2 = shift; i2 <= shift + SSP - 1; i2++) { price = High[i2]; if(SsMax < price) SsMax = price; price = Low[i2]; if(SsMin >= price) SsMin = price; } //---- smin = SsMin + (SsMax - SsMin)*K / 100; smax = SsMax - (SsMax - SsMin)*K / 100; val1[shift] = 0.0; val2[shift] = 0.0; if(Close[shift] < smin) { uptrend = false; } if(Close[shift] > smax) { uptrend = true; } if(uptrend != old && uptrend == true) { val1[shift] = Low[shift] - Range*Kstop; } if(uptrend != old && uptrend == false) { val2[shift] = High[shift] + Range*Kstop; } old = uptrend; } //---- Alert if (Period()<Time_alert_minutes) t_per=Period(); else t_per=Time_alert_minutes; // ???? ??<Time_alert, ????? ????? ?????????? ???? ??? ? ??. if (Alert_message==true && CurTime()>AlertTime && val1[0]!=0.0) { Alert(Symbol()," +++ BUY !!! +++" , " //AltrTrend_Signal_v2_2_alert"); AlertTime=CurTime() + (t_per - MathMod(TimeMinute(CurTime()), t_per))*60; //PlaySound("payment.wav"); int winHandle = WindowHandle( Symbol(), Period() ); StartScript(winHandle, script_name); } if (Alert_message==true && CurTime()>AlertTime && val2[0]!=0.0) { Alert(Symbol()," +++ SELL !!! +++" , " //AltrTrend_Signal_v2_2_alert"); AlertTime=CurTime() + (t_per - MathMod(TimeMinute(CurTime()), t_per))*60; // PlaySound("payment.wav"); int winHandle = WindowHandle( Symbol(), Period() ); StartScript(winHandle, script_name); } return(0); } void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false) { char buf[]; StringToCharArray("MetaTrader4_Internal_Message", buf); int MT4InternalMsg = RegisterWindowMessageA(buf); StringToCharArray(ScriptName, buf); SendMessageA(hWnd, MT4InternalMsg, 16, buf); if (AutomaticallyAcceptDefaults) { ClearConfigDialog(); } } void ClearConfigDialog() { Sleep(100); keybd_event(13, 0, 0, 0); } //+------------------------------------------------------------------+ pansa 2014.09.11 07:30 #47 Pavlick:好吗? 嗨,Pavlik! 安装了你的代码- 它的效果非常好! 你是一个伟大的人才 - 你已经突破了墙! 伟大的工作 - 现在可靠的信号和 ? 新的视野! ? 今天是个好日子啊! 我想特别感谢Integer。 他写了玩家呼叫脚本! 不过,也有人才和好人。 为你点赞! 今天是9/11/14! 潘萨 Renat Fatkhullin 2014.09.11 22:49 #48 Andrei01:我的大多数垃圾警告都是因为一个完全合法、正确和标准的变量通过引用传递到一个函数中而产生的,当时函数的模板名称与变量本身重合,因为在标准和典型的使用中,这个结构中的变量本身应该是以自己的名字传递到函数中。 请举例说明。不幸的是,主持人无法对此给出一个称职的、符合逻辑的解释,因为据说有时在其他结构中,当有类似的名字时,有人可能会产生误解。 如果我没有理解错的话,这个答案既符合逻辑又正确,而且是在几十年的持续编程中学习到的。 很抱歉不小心删除了评论--我点击了错误的地方,而且没有任何功能可以恢复它。 Andrei01 2014.09.12 05:41 #49 Renat:请给我一个例子。如果我没有理解错的话,这个答案既符合逻辑又正确,而且是在连续几十年的编程中遭受的。//-------------------------------------------------------------------- #property indicator_chart_window //-------------------------------------------------------------------- int a=1,b=2; //-------------------------------------------------------------------- void start(){ int k=sum(a,b); Alert(k); } //-------------------------------------------------------------------- int sum(int& a, int& b){ return(a+b); } 编辑器产生了"'a'的声明在第4行隐藏了全局声明 "和"'b'的声明在第4行隐藏了全局声明 "的警告,根据C语言的标准,这也是不正确的,从本质上来说是文盲,因为在一个函数里面既没有声明一个新变量,也没有暗示任何可能的变量重叠。 结果是,即使在一个不太大的程序代码中也有数百个不恰当的警告。 pansa 2014.09.12 08:21 #50 Vinin: 该指标是有效的,但开发者在其中犯了一个逻辑错误 嗨,维宁! 你检查了指标: AltrTrend_Signal_v2_2.mq4 并发现了一个逻辑错误 在 公式 :SSP=MathCeil (Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1)) 你在结尾处强调了1 你认为它应该是什么? 豆瓣酱 123456789101112...16 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我建议如下:在这里或在我的私人信息中附上指标(以前工作的变体,没有改动),我将对其进行修正。
嗨,Pavlik!
这就是版本。
原始的。
尝试拖动代码
豆瓣酱
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2.mq4
//|Ramdass - 仅限转换
//+------------------------------------------------------------------+
#财产版权 "作者 - OlegVS, GOODMAN"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Chartreuse
#property indicator_color2 黄色
#property indicator_width1 2
#property indicator_width2 2
//---- 输入参数
外部int K=30。
外置双Kstop=0.5。
外在的,内在的,Kperiod=150。
外来的PerADX=14。
外在的CountBars=350。
外来的intON=1; //zakton的
//---- 缓冲区
double val1[];
double val2[];
//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int init()
{
string short_name;
//----指标线
IndicatorBuffers(2)。
SetIndexStyle(0,DRAW_ARROW)。
SetIndexArrow(0,159);
SetIndexStyle(1,DRAW_ARROW)。
SetIndexArrow(1,159);
SetIndexBuffer(0,val1)。
SetIndexBuffer(1,val2)。
//----
return(0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2|
//+------------------------------------------------------------------+
int start()
{
如果(CountBars>=Bars) CountBars=Bars。
SetIndexDrawBegin(0,Bars-CountBars+PerADX)。
SetIndexDrawBegin(1,Bars-CountBars+PerADX)。
int i,shift,counted_bars=IndicatorCounted()。
int i1,i2;
double Range,AvgRange,smin,smax,ssMax,ssMin,SSP,price;
bool uptrend,old;
//----
if(Bars<=PerADX+1) return(0);
//---- 初始零点
如果(counted_bars<PerADX+1)
{
for(i=1;i<=PerADX;i++) val1[CountBars-i]=0.0;
for(i=1;i<=PerADX;i++) val2[CountBars-i]=0.0;
}
//----
for (shift = CountBars-PerADX; shift>=0; shift--)
{
SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1)) 。
范围=0。
平均范围=0。
for (i1=shift; i1<=shift+SSP; i1++)
{AvgRange=AvgRange+MathAbs (High[i1]-Low[i1])。
}
范围=AvgRange/(SSP+1)。
SsMax=High[shift]; SsMin=Low[shift]。
for (i2=shift;i2<=shift+SSP-1;i2++)
{
价格=高[i2]。
如果(SsMax<price) SsMax=price。
price=Low[i2];
如果(SsMin>=price) SsMin=price 。
}
smin = SsMin+(SsMax-SsMin)*K/100。
smax = SsMax-(SsMax-SsMin)*K/100。
val1[shift]=0。
val2[shift]=0。
如果(Close[shift]<smin)
{
uptrend = false。
}
如果(Close[shift]>smax)
{
上升趋势 =真。
}
if (uptrend!=old && uptrend=true) {val1[shift]=Low[shift]-Range*Kstop;}.
if (uptrend!=old && uptrend==false) {val2[shift]=High[shift]+Range*Kstop;}.
old=uptrend。
// zakton的代码
如果((shift == 0) && (SoundON == 1)) {
如果(val1[0] > 0)PlaySound("ReadyToExit.wav")。
}
如果((shift == 0) && (SoundON == 1)) {
如果(val2[0]>0)PlaySound("ReadyToExit.wav")。
}
}
return(0);
}
//+--------------------------------------------------------嗨,Pavlik!
这就是版本。
原始的。
尝试拖动代码
豆瓣酱
尊敬的女士们、先生们潘萨!为什么不使用SRC 按钮来输入密码?你有什么疑问吗?
祝您好运!
嗨,Pavlik!
这就是版本。
原始的。
尝试拖动代码
豆瓣酱
该指标可以使用,但开发者在其中犯了一个逻辑错误
好吗?
好吗?
嗨,Pavlik!
安装了你的代码-
它的效果非常好!
你是一个伟大的人才 -
你已经突破了墙!
伟大的工作 -
现在可靠的信号和
? 新的视野! ?
今天是个好日子啊!
我想特别感谢Integer。
他写了玩家呼叫脚本!
不过,也有人才和好人。
为你点赞!
今天是9/11/14!
潘萨
我的大多数垃圾警告都是因为一个完全合法、正确和标准的变量通过引用传递到一个函数中而产生的,当时函数的模板名称与变量本身重合,因为在标准和典型的使用中,这个结构中的变量本身应该是以自己的名字传递到函数中。
请举例说明。
不幸的是,主持人无法对此给出一个称职的、符合逻辑的解释,因为据说有时在其他结构中,当有类似的名字时,有人可能会产生误解。
如果我没有理解错的话,这个答案既符合逻辑又正确,而且是在几十年的持续编程中学习到的。
很抱歉不小心删除了评论--我点击了错误的地方,而且没有任何功能可以恢复它。
请给我一个例子。
如果我没有理解错的话,这个答案既符合逻辑又正确,而且是在连续几十年的编程中遭受的。
编辑器产生了"'a'的声明在第4行隐藏了全局声明 "和"'b'的声明在第4行隐藏了全局声明 "的警告,根据C语言的标准,这也是不正确的,从本质上来说是文盲,因为在一个函数里面既没有声明一个新变量,也没有暗示任何可能的变量重叠。
结果是,即使在一个不太大的程序代码中也有数百个不恰当的警告。
该指标是有效的,但开发者在其中犯了一个逻辑错误
嗨,维宁!
你检查了指标: AltrTrend_Signal_v2_2.mq4
并发现了一个逻辑错误
在 公式 :SSP=MathCeil (Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1))
你在结尾处强调了1
你认为它应该是什么?
豆瓣酱