如何编码? - 页 119 1...112113114115116117118119120121122123124125126...347 新评论 matrixebiz 2008.08.22 03:06 #1181 我想弄清楚这是否是错误的。 for (int i=qqea_alert_x_candles_ago; i>0; i--) { // int i = 1; qqea_up = iCustom(NULL,0, "QQE Alert v3",0,i)。 qqea_down = iCustom(NULL,0, "QQE Alert v3",1,i)。 如果(qqea_up < qqea_down) { if (i == 1) qqeacross = True; qqea_long = True。 qqea_short = False。 } else if (qqea_up > qqea_down) { 如果(i == 1)qqeacross = True。 qqea_long = False。 qqea_short = True。 } } } 它应该检查 有效的信号,直到 "qqea_alert_x_candles_ago "条,但它有(i == 1),i==1只发生一次? How to code? 错误、漏洞、问题 初学者的问题 MQL4 MT4 MetaTrader hiachiever 2008.08.22 07:24 #1182 matrixebiz: 我想弄清楚这是否是错误的。for (int i=qqea_alert_x_candles_ago; i>0; i--) { // int i = 1; qqea_up = iCustom(NULL,0, "QQE Alert v3",0,i)。 qqea_down = iCustom(NULL,0, "QQE Alert v3",1,i)。 Print("qqea_up: " , qqea_up, "qqea_down: " , qqea_down); 如果(qqea_up < qqea_down) { 如果(i == 1)qqeacross = True。 qqea_long = True。 qqea_short = False。 } else if (qqea_up > qqea_down) { 如果(i == 1)qqeacross = True。 qqea_long = False。 qqea_short = True。 } } } 它应该检查有效的信号,直到 "qqea_alert_x_candles_ago "条,但它有(i == 1),i==1只发生一次? 从表面上看,你的代码看起来没有问题,那是假设 "qqea_alert_x_candles_ago">0。 如果你的问题是不工作,很可能是与iCustom有关。 为了使这个函数 正常工作,你需要为实际指标中的每个输入元素传递一个输入元素。如果你不这样做,或传递错误的数据类型,那么icustom将不返回任何东西。 我在上面的代码中添加了一个 Print 语句。使用它来确定从iCustom返回的值是否真的包含任何东西。 欢呼吧。 欢欢 PussyGalore 2008.08.22 08:30 #1183 需要帮助来计算条形图的代码 我的EA有许多选项来计算未结头寸的止损。 其中一个选项是使用过去 "x "个价格柱的低点。 目前在EA中用于计算多头头寸的止损(SL)的代码行是。 SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0)) 。 StopLossBars是一个外部输入的变量。 我遇到的问题是,我想让StopLossBars的值随着开仓后的每一个柱子的计算而增加,直到我的其他止损条件之一超过这个条件。 我猜想有这样一行代码。 StopLossBars = StopLossBars + BarsCountedSincePositionOpened 就可以做到这一点。 不幸的是,我的编码仅限于剪切和粘贴,我不知道如何计算或编码BarsCountedSincePositionOpened。 谁能告诉我怎么做呢? matrixebiz 2008.08.22 10:21 #1184 hiachiever: 从表面上看,你的代码看起来不错,那是假设 "qqea_alert_x_candles_ago">0。你的问题如果不工作,很可能是与iCustom有关。 为了使这个函数正常工作,你需要为实际指标中的每个输入元素传递一个输入元素。如果你不这样做,或传递错误的数据类型,那么icustom将不返回任何东西。 我在上面的代码中添加了一个 Print 语句。使用它来确定从iCustom返回的值是否真的包含任何东西。 干杯。 捌月壹伍日 这段代码来自另一个EA,但我在想,当循环到 "qqea_alert_x_candles_ago">1时,这个语句 "if (i == 1) qqeacross = True; "现在将是假的,对吗?在i>qqea_alert_x_candles_ago之前,它应该保持为真。 RogerioMolinario 2008.08.22 14:55 #1185 帮助 亲爱的各位。 我从一个同事那里得到了这个编码。他告诉我,这应该是一个非常好的指标,可以指示SMA的上升或下降条目。谁能帮我用下面这个编码创建一个指标。 /*[[ 名称 :=SMA向上和向下 单独窗口 :=无 第一颜色 := 蓝色 第一绘图类型:=线 使用第二数据 := 是 第二颜色 := 红色 第二绘图类型 := 线条 ]]*/ 输入 : MAPeriod(10), Bandwide_UP(20),Bandwide_DOWN(20)。 变量 : shift(0), cnt(0), sum(0), loopbegin1(0), loopbegin2(0), first(True), prevbars(0); 变量:MA(0); SetLoopCount(0); // 初始检查 如果MAPeriod < 1 那么退出。 // 检查是否有额外的柱状体加载或全部重载 如果Bars 1 那么first = True。 prevbars = Bars; // loopbegin1和loopbegin2防止已计数的条形图的耦合,不包括当前条形图。 如果第一条,那么开始 loopbegin1 = Bars-MAPeriod-1; 如果loopbegin1<0,则退出;//没有足够的条数进行计数 loopbegin2 = Bars-MAPeriod-1; 如果loopbegin2<0,则退出;//没有足够的条数可供计算 first = False; // 此块只被评估一次 结束。 // 收敛-分歧 loopbegin1 = loopbegin1+1; // 当前条形也要被重新计算。 For shift = loopbegin1 Downto 0 开始 MA = iMA(MAPeriod,MODE_SMA,shift)。 SetIndexValue(shift,(MA+Bandwide_UP*point))。 SetIndexValue2(shift,(MA-Bandwide_DOWN*point))。 loopbegin1 = loopbegin1-1; //防止重新计算以前的小节。 结束。 最好的问候。 罗杰欧 How to code? 线性回归指标 原始想法 denis68 2008.08.22 21:49 #1186 需要帮助的代码 我需要以下代码的帮助,目前它只在AC高于或低于0的情况下开单,我希望它在红色变为绿色时开单,然后再签证。 double AC1 = iAC(NULL, 0, Current + 0); 双AC2 = iAC(NULL, 0, Current + 1); 如果((AC1<AC2))Order = SIGNAL_CLOSEBUY; hiachiever 2008.08.22 21:57 #1187 matrixebiz: 这段代码来自另一个EA,但我在想,当循环到 "qqea_alert_x_candles_ago">1时,这个语句 "if (i == 1) qqeacross = True; "现在应该是假的,对吗?而在i>qqea_alert_x_candles_ago之前,它应该保持真。 不,这是不正确的。 在for循环中,你从6开始,递减到1。这意味着在for循环执行的最后一环,它进行了 "if (i == 1) qqeacross = True; "检查。最终结果是,如果qqeacross发生了,输出将是真。 这可能带来的唯一问题是,如果qqeacross在之前的循环中被设置为真。为了克服这个问题,你应该在for循环之前设置qqeacross = false; 。通过这种方式,你可以确保如果qqeacross = true,那么它是由刚刚完成的循环设置的。 干杯。 hiachiever hiachiever 2008.08.22 22:09 #1188 Pussy Galore: 我的EA有许多选项来计算未结头寸的止损。其中一个选项是使用过去 "x "个价格条的低点。 目前EA内用于计算该期权多头头寸的止损(SL)的一行代码是。SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0)) 。StopLossBars是一个外部输入的变量。我遇到的问题是,我想让StopLossBars的值随着开仓后的每一个柱子的计算而增加,直到我的其他止损条件之一超过这个条件。我猜想有这样一行代码。StopLossBars = StopLossBars + BarsCountedSincePositionOpened就可以做到这一点。不幸的是,我的编码仅限于剪切和粘贴,我不知道如何计算或编码BarsCountedSincePositionOpened。 谁能告诉我怎么做呢? 做到这一点的方法是在全局范围内创建一个变量(即在init之前)。 例如 int BarCount。 int init () 然后在你的止损 代码中使用以下内容。 如果(BarCount<Bars) { SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0)) 。 StopLossBars++; BarCount=Bars。 } 这将使StopLossBars在每个新条形上增加1。 对你的代码唯一的补充是,当新的交易开始时,将 "StopLossBars "重置为原来的默认值。 干杯。 欢欢 matrixebiz 2008.08.22 22:21 #1189 denis68: 我需要以下代码的帮助,目前它只在AC高于或低于0的情况下开单,我希望它在红色变为绿色时开单,然后是签证。 double AC1 = iAC(NULL, 0, Current + 0);double AC2 = iAC(NULL, 0, Current + 1); 如果((AC1 < AC2))订单 = SIGNAL_CLOSEBUY; 我所做的是在指标代码中打开或显示另外两个缓冲区,将这两行删除。 // SetIndexLabel(1,NULL); // SetIndexLabel(2,NULL)。 然后用我修改过的AC做了一个iCustom调用。 double ac1 = iCustom(NULL, 0, "AcceleratorMod", 1, 1); double ac2 = iCustom(NULL, 0, "AcceleratorMod", 2, 1); double ac11 = iCustom(NULL, 0, "AcceleratorMod", 1, 2); 双倍ac22 = iCustom(NULL, 0, "AcceleratorMod", 2, 2)。 bool acbuy = ac2==0 && ac11==0; // 红色变为绿色 bool acsell = ac1==0 && ac22==0; // 绿色变为红色 希望这对你有帮助 denis68 2008.08.23 09:52 #1190 matrixebiz 你说的删除这两行是什么意思;我怎么做呢,我无法进入我试过的AC指标的代码。 1...112113114115116117118119120121122123124125126...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我想弄清楚这是否是错误的。
for (int i=qqea_alert_x_candles_ago; i>0; i--) {
// int i = 1;
qqea_up = iCustom(NULL,0, "QQE Alert v3",0,i)。
qqea_down = iCustom(NULL,0, "QQE Alert v3",1,i)。
如果(qqea_up < qqea_down) {
if (i == 1) qqeacross = True;
qqea_long = True。
qqea_short = False。
} else if (qqea_up > qqea_down) {
如果(i == 1)qqeacross = True。
qqea_long = False。
qqea_short = True。
}
}
}
它应该检查 有效的信号,直到 "qqea_alert_x_candles_ago "条,但它有(i == 1),i==1只发生一次?
我想弄清楚这是否是错误的。
for (int i=qqea_alert_x_candles_ago; i>0; i--) {
// int i = 1;
qqea_up = iCustom(NULL,0, "QQE Alert v3",0,i)。
qqea_down = iCustom(NULL,0, "QQE Alert v3",1,i)。
Print("qqea_up: " , qqea_up, "qqea_down: " , qqea_down);
如果(qqea_up < qqea_down) {
如果(i == 1)qqeacross = True。
qqea_long = True。
qqea_short = False。
} else if (qqea_up > qqea_down) {
如果(i == 1)qqeacross = True。
qqea_long = False。
qqea_short = True。
}
}
}
它应该检查有效的信号,直到 "qqea_alert_x_candles_ago "条,但它有(i == 1),i==1只发生一次?从表面上看,你的代码看起来没有问题,那是假设 "qqea_alert_x_candles_ago">0。
如果你的问题是不工作,很可能是与iCustom有关。
为了使这个函数 正常工作,你需要为实际指标中的每个输入元素传递一个输入元素。如果你不这样做,或传递错误的数据类型,那么icustom将不返回任何东西。
我在上面的代码中添加了一个 Print 语句。使用它来确定从iCustom返回的值是否真的包含任何东西。
欢呼吧。
欢欢
需要帮助来计算条形图的代码
我的EA有许多选项来计算未结头寸的止损。 其中一个选项是使用过去 "x "个价格柱的低点。
目前在EA中用于计算多头头寸的止损(SL)的代码行是。
SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0)) 。
StopLossBars是一个外部输入的变量。
我遇到的问题是,我想让StopLossBars的值随着开仓后的每一个柱子的计算而增加,直到我的其他止损条件之一超过这个条件。 我猜想有这样一行代码。
StopLossBars = StopLossBars + BarsCountedSincePositionOpened
就可以做到这一点。 不幸的是,我的编码仅限于剪切和粘贴,我不知道如何计算或编码BarsCountedSincePositionOpened。
谁能告诉我怎么做呢?
从表面上看,你的代码看起来不错,那是假设 "qqea_alert_x_candles_ago">0。
你的问题如果不工作,很可能是与iCustom有关。
为了使这个函数正常工作,你需要为实际指标中的每个输入元素传递一个输入元素。如果你不这样做,或传递错误的数据类型,那么icustom将不返回任何东西。
我在上面的代码中添加了一个 Print 语句。使用它来确定从iCustom返回的值是否真的包含任何东西。
干杯。
捌月壹伍日这段代码来自另一个EA,但我在想,当循环到 "qqea_alert_x_candles_ago">1时,这个语句 "if (i == 1) qqeacross = True; "现在将是假的,对吗?在i>qqea_alert_x_candles_ago之前,它应该保持为真。
帮助
亲爱的各位。
我从一个同事那里得到了这个编码。他告诉我,这应该是一个非常好的指标,可以指示SMA的上升或下降条目。谁能帮我用下面这个编码创建一个指标。
/*[[
名称 :=SMA向上和向下
单独窗口 :=无
第一颜色 := 蓝色
第一绘图类型:=线
使用第二数据 := 是
第二颜色 := 红色
第二绘图类型 := 线条
]]*/
输入 : MAPeriod(10), Bandwide_UP(20),Bandwide_DOWN(20)。
变量 : shift(0), cnt(0), sum(0), loopbegin1(0), loopbegin2(0), first(True), prevbars(0);
变量:MA(0);
SetLoopCount(0);
// 初始检查
如果MAPeriod < 1 那么退出。
// 检查是否有额外的柱状体加载或全部重载
如果Bars 1 那么first = True。
prevbars = Bars;
// loopbegin1和loopbegin2防止已计数的条形图的耦合,不包括当前条形图。
如果第一条,那么开始
loopbegin1 = Bars-MAPeriod-1;
如果loopbegin1<0,则退出;//没有足够的条数进行计数
loopbegin2 = Bars-MAPeriod-1;
如果loopbegin2<0,则退出;//没有足够的条数可供计算
first = False; // 此块只被评估一次
结束。
// 收敛-分歧
loopbegin1 = loopbegin1+1; // 当前条形也要被重新计算。
For shift = loopbegin1 Downto 0 开始
MA = iMA(MAPeriod,MODE_SMA,shift)。
SetIndexValue(shift,(MA+Bandwide_UP*point))。
SetIndexValue2(shift,(MA-Bandwide_DOWN*point))。
loopbegin1 = loopbegin1-1; //防止重新计算以前的小节。
结束。
最好的问候。
罗杰欧
需要帮助的代码
我需要以下代码的帮助,目前它只在AC高于或低于0的情况下开单,我希望它在红色变为绿色时开单,然后再签证。
double AC1 = iAC(NULL, 0, Current + 0);
双AC2 = iAC(NULL, 0, Current + 1);
如果((AC1<AC2))Order = SIGNAL_CLOSEBUY;
这段代码来自另一个EA,但我在想,当循环到 "qqea_alert_x_candles_ago">1时,这个语句 "if (i == 1) qqeacross = True; "现在应该是假的,对吗?而在i>qqea_alert_x_candles_ago之前,它应该保持真。
不,这是不正确的。
在for循环中,你从6开始,递减到1。这意味着在for循环执行的最后一环,它进行了 "if (i == 1) qqeacross = True; "检查。最终结果是,如果qqeacross发生了,输出将是真。
这可能带来的唯一问题是,如果qqeacross在之前的循环中被设置为真。为了克服这个问题,你应该在for循环之前设置qqeacross = false; 。通过这种方式,你可以确保如果qqeacross = true,那么它是由刚刚完成的循环设置的。
干杯。
hiachiever
我的EA有许多选项来计算未结头寸的止损。其中一个选项是使用过去 "x "个价格条的低点。
目前EA内用于计算该期权多头头寸的止损(SL)的一行代码是。
SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0)) 。
StopLossBars是一个外部输入的变量。
我遇到的问题是,我想让StopLossBars的值随着开仓后的每一个柱子的计算而增加,直到我的其他止损条件之一超过这个条件。我猜想有这样一行代码。
StopLossBars = StopLossBars + BarsCountedSincePositionOpened
就可以做到这一点。不幸的是,我的编码仅限于剪切和粘贴,我不知道如何计算或编码BarsCountedSincePositionOpened。
谁能告诉我怎么做呢?做到这一点的方法是在全局范围内创建一个变量(即在init之前)。
例如
int BarCount。
int init ()
然后在你的止损 代码中使用以下内容。
如果(BarCount<Bars)
{
SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0)) 。
StopLossBars++;
BarCount=Bars。
}
这将使StopLossBars在每个新条形上增加1。
对你的代码唯一的补充是,当新的交易开始时,将 "StopLossBars "重置为原来的默认值。
干杯。
欢欢
我需要以下代码的帮助,目前它只在AC高于或低于0的情况下开单,我希望它在红色变为绿色时开单,然后是签证。
double AC1 = iAC(NULL, 0, Current + 0);
double AC2 = iAC(NULL, 0, Current + 1);
如果((AC1 < AC2))订单 = SIGNAL_CLOSEBUY;我所做的是在指标代码中打开或显示另外两个缓冲区,将这两行删除。
// SetIndexLabel(1,NULL);
// SetIndexLabel(2,NULL)。
然后用我修改过的AC做了一个iCustom调用。
double ac1 = iCustom(NULL, 0, "AcceleratorMod", 1, 1);
double ac2 = iCustom(NULL, 0, "AcceleratorMod", 2, 1);
double ac11 = iCustom(NULL, 0, "AcceleratorMod", 1, 2);
双倍ac22 = iCustom(NULL, 0, "AcceleratorMod", 2, 2)。
bool acbuy = ac2==0 && ac11==0; // 红色变为绿色
bool acsell = ac1==0 && ac22==0; // 绿色变为红色
希望这对你有帮助
matrixebiz 你说的删除这两行是什么意思;我怎么做呢,我无法进入我试过的AC指标的代码。