编码帮助 - 页 258 1...251252253254255256257258259260261262263264265...786 新评论 Mladen Rakic 2014.04.10 06:09 #2571 Tomcat98: 嗨,Mladen ,大家好。该死的新建筑! 在B625中,我现在得到了新的警告。 "'OrderSelect'的返回值应被检查" 对于以下代码。 "OrderSelect(i,SELECT_BY_POS,MODE_TRADES);" 如何纠正? 谢谢大家。 Tomcat98 Tomcat98 做到以下几点。 声明一个全局布尔变量(例如,像这样)。 bool dummyResult。 然后简单地把 "dummyResult ="放在OrderSelect的前面--那么你就会有以下结果。 dummyResult = OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。 Ovo 2014.04.10 06:42 #2572 Tomcat98: 嗨,Mladen ,大家好。 该死的新建筑!在B625中,我现在得到了新的警告。"'OrderSelect'的返回值应被检查"对于以下代码。"OrderSelect(i,SELECT_BY_POS,MODE_TRADES);"如何纠正?谢谢大家。 Tomcat98 好吧,你可以用一些努力的代价来摆脱它。 但是我有一个永久的警告,我不能用任何方法来删除(除了删除源代码的那一行)。 struct Empty {};[/CODE] results in [CODE]! struct has no members, size assigned to 1 byte 如果我只把它作为dll调用的超类型(我不知道这个空结构有什么其他用途),这就是无用信息。 Tomcat98 2014.04.10 06:58 #2573 Hi Mladen, 是的,它起作用了。 干得好。 非常感谢您的帮助。 真诚的。 Tomcat98 Anton79 2014.04.10 12:17 #2574 大家好。 自从一些天以来,我在我的EA中使用的一个指标中不时地收到以下错误。 2014.04.10 09:01:49.533 2014.01.08 03:45 Access violation write to 0xFFFFFFFE in 'C:\Users\...\AppData\Roaming\MetaQuotes\Terminal\D5D5AE2430FC68F628F143CAFA9XXXX\MQL4\indicators\MyDailyFibo.ex4' 我使用MT版本4。Build 625 请帮助我找到这个问题的根本原因。如果你需要查看该指标,请告诉我。它并不总是出现,但非常频繁...... 谢谢,并致以最诚挚的问候。 安东尼 Mladen Rakic 2014.04.10 12:21 #2575 Antony1: 大家好。几天以来,我在我的EA中使用的一个指标中零星地出现了以下错误。 2014.04.10 09:01:49.533 2014.01.08 03:45 Access violation write to 0xFFFFFFFE in 'C:\Users\...\AppData\Roaming\MetaQuotes\Terminal\D5D5AE2430FC68F628F143CAFA9XXXX\MQL4\indicators\MyDailyFibo.ex4' 我使用MT版本4。Build 625 请帮助我找到这个问题的根本原因。如果你需要查看该指标,请告诉我。它并不总是出现,但非常频繁...... 谢谢,并致以最诚挚的问候。 安东尼 安东尼 这不是你的指标的问题 这是一个新的metatrader 4的问题(它在适当的内存分配和访问方面有问题--build 628有点好,但不多)。 Fausto Nunziante Del Gaudio 2014.04.10 13:22 #2576 你好。 我需要帮助,我试图写这个指标(Wilder trailing stop candles MTF)。 第一个问题:我的指标在该信号之前的1条街画出买入信号,我知道这是由于斜率的计算方式,但我不知道如何解决这个问题。 第二个问题:颜色不一致,可能是我在这部分的缓冲区弄错了,但我自己也搞不清楚,我无法解决 。 if (UpLineBuffer!=EMPTY_VALUE) { UpBodyBuffer = High; DnBodyBuffer = Low; UpWickBuffer = MathMax(Open,Close); DnWickBuffer = MathMin(Open,Close); } else { DnBodyBuffer = High; UpBodyBuffer = Low; DnWickBuffer = MathMax(Open,Close); UpWickBuffer = MathMin(Open,Close); wilders_trailing_stop_candles_mtf.mq4 wilders_trailing_stop_mtf_1.mq4 野生动物_蔓生动物_停止.mq4 附加的文件: wilders_trailing_stop_candles_mtf.mq4 5 kb wilders_trailing_stop_mtf_1.mq4 4 kb wilders_trailing_stop.mq4 3 kb cattura_1.jpg 69 kb Fausto Nunziante Del Gaudio 2014.04.10 14:00 #2577 thefxpros: 你好。我需要帮助,我试图写这个指标(Wilder trailing stop candles MTF)。 第一个问题:我的指标在该信号之前的1条街画出买入信号,我知道这是由于斜率的计算方式,但我不知道如何解决这个问题。 第二个问题:颜色不一致,可能是我在这部分的缓冲区弄错了,但我自己也搞不清楚,我无法解决 。 if (UpLineBuffer!=EMPTY_VALUE) { UpBodyBuffer = High; DnBodyBuffer = Low; UpWickBuffer = MathMax(Open,Close); DnWickBuffer = MathMin(Open,Close); } else { DnBodyBuffer = High; UpBodyBuffer = Low; DnWickBuffer = MathMax(Open,Close); UpWickBuffer = MathMin(Open,Close); wilders_trailing_stop_candles_mtf.mq4 wilders_trailing_stop_mtf_1.mq4 wilders_trailing_stop.mq4 mmmhh,颜色匹配。也许我需要先写灯芯缓冲器,然后再写灯体缓冲器? Mladen Rakic 2014.04.10 14:07 #2578 thefxpros: mmmhh,颜色匹配。也许我需要先写wickbuffers,再写bodybuffers? Thefxpros 最简单的方法是改变Wilders尾随止损指标(否则你会陷入一些复杂的if then else结构中)。这里有一个版本,有一个你想要的内部缓冲器:趋势。如果它等于1,趋势是上升,如果它等于-1,趋势是下降。用这个指标代替原来的指标,只需读取缓冲区4的值--之后一切就简单了 附加的文件: wilders_trailing_stop_with_trend.mq4 3 kb Fausto Nunziante Del Gaudio 2014.04.10 14:16 #2579 mladen: thefxpros 最简单的方法是改变Wilders尾随止损指标(否则你会陷入一些复杂的if then else结构中)。这里有一个版本,有一个你想要的内部缓冲器:趋势。如果它等于1,趋势是上升,如果它等于-1,趋势是下降。使用这个指标代替原来的指标,只需读取缓冲区4的值--之后一切都很简单。 像这样吗? //------------------------------------------------------------------ #property copyright "thefxpros" #property link "thefxpros@katamail.com" //------------------------------------------------------------------ #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 LimeGreen #property indicator_color2 Orange #property indicator_color3 DarkGreen #property indicator_color4 FireBrick #property indicator_width1 1 #property indicator_width2 2 // // // extern int TimeFrame = 0; extern int Length = 2; extern double Coeff = 1.75; extern color UpBodyColor = LimeGreen; extern color DnBodyColor = Orange; extern color UpWickColor = DarkGreen; extern color DnWickColor = FireBrick; extern int WickWidth = 1; extern int BodyWidth = 2; // double UpBodyBuffer[]; double DnBodyBuffer[]; double UpWickBuffer[]; double DnWickBuffer[]; double TrendBuffer[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { IndicatorBuffers(6); SetIndexBuffer(0,UpWickBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, UpWickColor); SetIndexBuffer(1,DnWickBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, DnWickColor); SetIndexBuffer(2,UpBodyBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, UpBodyColor); SetIndexBuffer(3,DnBodyBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, DnBodyColor); SetIndexBuffer(4,TrendBuffer); IndicatorShortName("Wilders trailing stop MTF candles("+Length+","+Coeff+")"); Length = MathMax(Length,1); switch(TimeFrame) { case 1 : string TimeFrameStr="Period_M1"; break; case 5 : TimeFrameStr="Period_M5"; break; case 15 : TimeFrameStr="Period_M15"; break; case 30 : TimeFrameStr="Period_M30"; break; case 60 : TimeFrameStr="Period_H1"; break; case 240 : TimeFrameStr="Period_H4"; break; case 1440 : TimeFrameStr="Period_D1"; break; case 10080 : TimeFrameStr="Period_W1"; break; case 43200 : TimeFrameStr="Period_MN1"; break; default : TimeFrameStr="Current Timeframe"; } IndicatorShortName("Wilders trailing stop MTF candles("+TimeFrameStr+")"); return(0); } //---- //+------------------------------------------------------------------+ //| MTF function | //+------------------------------------------------------------------+ int start() { datetime TimeArray[]; int i,limit,y=0,counted_bars=IndicatorCounted(); // Plot defined time frame on to current time frame ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame); limit= MathMin(Bars-counted_bars+3*TimeFrame/Period(),Bars-1); for(i=0,y=0;i<limit;i++) { if (Time<TimeArray[y]) y++; /********************************************************************************************************* Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom. Rule 1: Add extern inputs above for all neccesary values Rule 2: Use 'TimeFrame' for the indicator time frame Rule 3: Use 'y' for your indicator's shift value ********************************************************************************************************/ int slope=iCustom(Symbol(),TimeFrame,"Wilders trailing stop with trend",Length,Coeff,4,y); if (slope == 1) { UpWickBuffer = High; DnWickBuffer = Low; UpBodyBuffer = MathMax(Open,Close); DnBodyBuffer = MathMin(Open,Close); } if (slope == -1) { DnWickBuffer = High; UpWickBuffer = Low; DnBodyBuffer = MathMax(Open,Close); UpBodyBuffer = MathMin(Open,Close); } } return(0); } //+------------------------------------------------------------------+ 我不敢相信,第一次尝试就成功了..... 还有什么比我写的更好的吗(删除trendbuffer是的,我现在看到了)? 谢谢 Mladen 附加的文件: cattura_2.jpg 72 kb Coding help 多时间框架指标 MACD indicator Dedoctor 2014.04.10 14:44 #2580 mladen: 你不能在图表上画以英寸为单位的线(使用metatrader完全不可能,我怀疑在任何交易平台上都不可能)。而且这些线是水平线对象而不是趋势线(趋势线可以有限制,但水平线不能)。如果没有确切的数学规则,这些线应该如何绘制(取决于价格,而不是英寸),它们根本无法绘制,从这些数字序列来看,规则对每一条线都是独一无二的。 好的,谢谢,我找到了一个更好的、你可以编辑的indy。这是在forexfactory做的一个未完成的项目,现在找不到他了。请用我的数字替换00、20、50、80。线路也是聚在一起的,而不是只放在特殊数字5、15、31、45和67上。 谢谢 附加的文件: psycho_lines.mq4 4 kb 1...251252253254255256257258259260261262263264265...786 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
嗨,Mladen ,大家好。
该死的新建筑!
在B625中,我现在得到了新的警告。
"'OrderSelect'的返回值应被检查"
对于以下代码。
"OrderSelect(i,SELECT_BY_POS,MODE_TRADES);"
如何纠正?
谢谢大家。
Tomcat98Tomcat98
做到以下几点。
声明一个全局布尔变量(例如,像这样)。
bool dummyResult。
然后简单地把 "dummyResult ="放在OrderSelect的前面--那么你就会有以下结果。
dummyResult = OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。
嗨,Mladen ,大家好。
该死的新建筑!
在B625中,我现在得到了新的警告。
"'OrderSelect'的返回值应被检查"
对于以下代码。
"OrderSelect(i,SELECT_BY_POS,MODE_TRADES);"
如何纠正?
谢谢大家。
Tomcat98好吧,你可以用一些努力的代价来摆脱它。
但是我有一个永久的警告,我不能用任何方法来删除(除了删除源代码的那一行)。
results in
[CODE]! struct has no members, size assigned to 1 byte如果我只把它作为dll调用的超类型(我不知道这个空结构有什么其他用途),这就是无用信息。
Hi Mladen,
是的,它起作用了。
干得好。
非常感谢您的帮助。
真诚的。
Tomcat98
大家好。
自从一些天以来,我在我的EA中使用的一个指标中不时地收到以下错误。
2014.04.10 09:01:49.533 2014.01.08 03:45 Access violation write to 0xFFFFFFFE in 'C:\Users\...\AppData\Roaming\MetaQuotes\Terminal\D5D5AE2430FC68F628F143CAFA9XXXX\MQL4\indicators\MyDailyFibo.ex4'
我使用MT版本4。Build 625
请帮助我找到这个问题的根本原因。如果你需要查看该指标,请告诉我。它并不总是出现,但非常频繁......
谢谢,并致以最诚挚的问候。
安东尼
大家好。
几天以来,我在我的EA中使用的一个指标中零星地出现了以下错误。
2014.04.10 09:01:49.533 2014.01.08 03:45 Access violation write to 0xFFFFFFFE in 'C:\Users\...\AppData\Roaming\MetaQuotes\Terminal\D5D5AE2430FC68F628F143CAFA9XXXX\MQL4\indicators\MyDailyFibo.ex4'
我使用MT版本4。Build 625
请帮助我找到这个问题的根本原因。如果你需要查看该指标,请告诉我。它并不总是出现,但非常频繁......
谢谢,并致以最诚挚的问候。
安东尼安东尼
这不是你的指标的问题
这是一个新的metatrader 4的问题(它在适当的内存分配和访问方面有问题--build 628有点好,但不多)。
你好。
我需要帮助,我试图写这个指标(Wilder trailing stop candles MTF)。
第一个问题:我的指标在该信号之前的1条街画出买入信号,我知道这是由于斜率的计算方式,但我不知道如何解决这个问题。
第二个问题:颜色不一致,可能是我在这部分的缓冲区弄错了,但我自己也搞不清楚,我无法解决 。
{
UpBodyBuffer = High;
DnBodyBuffer = Low;
UpWickBuffer = MathMax(Open,Close);
DnWickBuffer = MathMin(Open,Close);
}
else
{
DnBodyBuffer = High;
UpBodyBuffer = Low;
DnWickBuffer = MathMax(Open,Close);
UpWickBuffer = MathMin(Open,Close);wilders_trailing_stop_candles_mtf.mq4
wilders_trailing_stop_mtf_1.mq4
野生动物_蔓生动物_停止.mq4
你好。
我需要帮助,我试图写这个指标(Wilder trailing stop candles MTF)。
第一个问题:我的指标在该信号之前的1条街画出买入信号,我知道这是由于斜率的计算方式,但我不知道如何解决这个问题。
第二个问题:颜色不一致,可能是我在这部分的缓冲区弄错了,但我自己也搞不清楚,我无法解决 。
{
UpBodyBuffer = High;
DnBodyBuffer = Low;
UpWickBuffer = MathMax(Open,Close);
DnWickBuffer = MathMin(Open,Close);
}
else
{
DnBodyBuffer = High;
UpBodyBuffer = Low;
DnWickBuffer = MathMax(Open,Close);
UpWickBuffer = MathMin(Open,Close);wilders_trailing_stop_candles_mtf.mq4
wilders_trailing_stop_mtf_1.mq4
wilders_trailing_stop.mq4
mmmhh,颜色匹配。也许我需要先写灯芯缓冲器,然后再写灯体缓冲器?
mmmhh,颜色匹配。也许我需要先写wickbuffers,再写bodybuffers?
Thefxpros
最简单的方法是改变Wilders尾随止损指标(否则你会陷入一些复杂的if then else结构中)。这里有一个版本,有一个你想要的内部缓冲器:趋势。如果它等于1,趋势是上升,如果它等于-1,趋势是下降。用这个指标代替原来的指标,只需读取缓冲区4的值--之后一切就简单了
thefxpros 最简单的方法是改变Wilders尾随止损指标(否则你会陷入一些复杂的if then else结构中)。这里有一个版本,有一个你想要的内部缓冲器:趋势。如果它等于1,趋势是上升,如果它等于-1,趋势是下降。使用这个指标代替原来的指标,只需读取缓冲区4的值--之后一切都很简单。
像这样吗?
#property copyright "thefxpros"
#property link "thefxpros@katamail.com"
//------------------------------------------------------------------
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 LimeGreen
#property indicator_color2 Orange
#property indicator_color3 DarkGreen
#property indicator_color4 FireBrick
#property indicator_width1 1
#property indicator_width2 2
//
//
//
extern int TimeFrame = 0;
extern int Length = 2;
extern double Coeff = 1.75;
extern color UpBodyColor = LimeGreen;
extern color DnBodyColor = Orange;
extern color UpWickColor = DarkGreen;
extern color DnWickColor = FireBrick;
extern int WickWidth = 1;
extern int BodyWidth = 2;
//
double UpBodyBuffer[];
double DnBodyBuffer[];
double UpWickBuffer[];
double DnWickBuffer[];
double TrendBuffer[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(6);
SetIndexBuffer(0,UpWickBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, UpWickColor);
SetIndexBuffer(1,DnWickBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, DnWickColor);
SetIndexBuffer(2,UpBodyBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, UpBodyColor);
SetIndexBuffer(3,DnBodyBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, DnBodyColor);
SetIndexBuffer(4,TrendBuffer);
IndicatorShortName("Wilders trailing stop MTF candles("+Length+","+Coeff+")");
Length = MathMax(Length,1);
switch(TimeFrame)
{
case 1 : string TimeFrameStr="Period_M1"; break;
case 5 : TimeFrameStr="Period_M5"; break;
case 15 : TimeFrameStr="Period_M15"; break;
case 30 : TimeFrameStr="Period_M30"; break;
case 60 : TimeFrameStr="Period_H1"; break;
case 240 : TimeFrameStr="Period_H4"; break;
case 1440 : TimeFrameStr="Period_D1"; break;
case 10080 : TimeFrameStr="Period_W1"; break;
case 43200 : TimeFrameStr="Period_MN1"; break;
default : TimeFrameStr="Current Timeframe";
}
IndicatorShortName("Wilders trailing stop MTF candles("+TimeFrameStr+")");
return(0);
}
//----
//+------------------------------------------------------------------+
//| MTF function |
//+------------------------------------------------------------------+
int start()
{
datetime TimeArray[];
int i,limit,y=0,counted_bars=IndicatorCounted();
// Plot defined time frame on to current time frame
ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);
limit= MathMin(Bars-counted_bars+3*TimeFrame/Period(),Bars-1);
for(i=0,y=0;i<limit;i++)
{
if (Time<TimeArray[y]) y++;
/*********************************************************************************************************
Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom.
Rule 1: Add extern inputs above for all neccesary values
Rule 2: Use 'TimeFrame' for the indicator time frame
Rule 3: Use 'y' for your indicator's shift value
********************************************************************************************************/
int slope=iCustom(Symbol(),TimeFrame,"Wilders trailing stop with trend",Length,Coeff,4,y);
if (slope == 1)
{
UpWickBuffer = High;
DnWickBuffer = Low;
UpBodyBuffer = MathMax(Open,Close);
DnBodyBuffer = MathMin(Open,Close);
}
if (slope == -1)
{
DnWickBuffer = High;
UpWickBuffer = Low;
DnBodyBuffer = MathMax(Open,Close);
UpBodyBuffer = MathMin(Open,Close);
}
}
return(0);
}
//+------------------------------------------------------------------+我不敢相信,第一次尝试就成功了..... 还有什么比我写的更好的吗(删除trendbuffer是的,我现在看到了)?
谢谢 Mladen
你不能在图表上画以英寸为单位的线(使用metatrader完全不可能,我怀疑在任何交易平台上都不可能)。而且这些线是水平线对象而不是趋势线(趋势线可以有限制,但水平线不能)。如果没有确切的数学规则,这些线应该如何绘制(取决于价格,而不是英寸),它们根本无法绘制,从这些数字序列来看,规则对每一条线都是独一无二的。
好的,谢谢,我找到了一个更好的、你可以编辑的indy。这是在forexfactory做的一个未完成的项目,现在找不到他了。请用我的数字替换00、20、50、80。线路也是聚在一起的,而不是只放在特殊数字5、15、31、45和67上。
谢谢