如何编码? - 页 120 1...113114115116117118119120121122123124125126127...347 新评论 matrixebiz 2008.08.23 10:03 #1191 denis68: matrixebiz 你说的删除这两行是什么意思;我怎么做呢,我无法进入我试过的AC指标的代码。 你在MetaEditor中打开Accelerator.mq4(它在你的指标文件夹中),在这两行前面加上//,然后保存为新名称AcceleratorMod.mq4,然后点击编译。 附加的文件: acceleratormod.mq4 4 kb matrixebiz 2008.08.23 10:06 #1192 hiachiever: 不,这是不正确的。在for循环中,你从6开始,递减到1。这意味着在for循环执行的最后一环,它进行了 "if (i == 1) qqeacross = True; "检查。最终结果是,如果qqeacross发生了,输出将是真。 这可能带来的唯一问题是,如果qqeacross在之前的循环中被设置为真。为了克服这个问题,你应该在for循环之前设置qqeacross = false; 。通过这种方式,你可以确保如果qqeacross = true,那么它是由刚刚完成的循环设置的。 干杯。 hiachiever 因此,即使它说 "如果(i == 1)qqeacross = True;",然后i=4(因为倒计时),qqeacross仍将= True? PussyGalore 2008.08.23 13:03 #1193 谢谢hiachiever! hiachiever: 做到这一点的方法是在全局范围内创建一个变量(即在init之前)。譬如 int BarCount; int init () 然后在你的止损代码中使用以下内容。 如果(BarCount<Bars) { SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0)) 。 StopLossBars++; BarCount=Bars。 } 这将使StopLossBars在每个新条形上增加1。 对你的代码唯一的补充是,当新的交易开始时,将 "StopLossBars "重置为原来的默认值。 谢谢。 欢欢 谢谢你,hiachiever,你的帮助非常好,不过我还想请你帮一个小忙。 我想我明白你的代码是如何工作的,我确信我可以把它复制到我的EA 。 但我不确定如何将止损点重置为默认值。 这是EA最后的代码,用于做多或做空。 void goLong() { int ticket = OrderSend(Symbol(),OP_BUY,GetLots(100),Ask,maxSlippage,0,0,"Long",MagicNumber,0,Green); if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768); if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long"); Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long"); } void goShort() { int ticket = OrderSend(Symbol(),OP_SELL,GetLots(100),Bid,maxSlippage,0,0,"Short",MagicNumber,0,Red); if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768); if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short"); Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short"); } double stopLoss(int ordertype) 能否请您帮助提供一些重置止损点的代码? 再次感谢。 How to code? [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 [WARNING CLOSED!] Any newbie denis68 2008.08.23 19:50 #1194 matrixebiz 我已经做了,现在我无法编译我的EA,当我在我的EA中加入以下几行时 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; // Lime 变为 Red。 我得到12个错误。AC变量没有定义。 我想感谢你的帮助。 luxinterior 2008.08.23 20:31 #1195 我想StopLossBars是一个全局变量,通过用户输入来设置,对吗? 那么我的做法是这样的。 让用户输入的变量是gStopLossBars,然后在你的初始函数 中把它分配给你的本地变量,比如...... StopLossBars = gStopLossBars。 然后在你的买入和卖出函数中简单地使用同样的赋值来重置StopLossBars。 有意义吗? 希望这对你有帮助。 拉克斯 [删除] 2008.08.23 21:30 #1196 Ac+ao+psar 大家好。 有谁能把AC+AO+PSAR结合起来成为一个新的带有警报/邮件的指标?请给我发邮件。谢谢。 PussyGalore 2008.08.24 07:30 #1197 luxinterior: 我想StopLossBars是一个全局变量,通过用户输入来设置,对吗?我的做法是这样的。 让用户输入的变量是gStopLossBars,然后在你的初始函数中把它分配给你的本地变量,比如... StopLossBars = gStopLossBars。 然后在你的买入和卖出函数中简单地使用同样的赋值来重置StopLossBars。 有意义吗? 希望这有帮助。 卢克斯 这很有意义。 非常感谢。 Ninja Trader 2008.08.24 08:13 #1198 我怎样才能检测到新的蜡烛开始的时间? 请谁给我一些建议,我怎样才能创建一个EA,在新的蜡烛开始时发出一个挂单(每日TF)? 谢谢 IN10TION 2008.08.24 08:28 #1199 :: 嗨!检查这个指标 里面的代码...(只针对你的开盘时间,它不是一个EA) tcl: 请谁给我一些建议,我怎样才能创建一个EA,在新条形图开始时发出挂单(日线TF)? 谢谢 fercan 2008.08.24 12:06 #1200 有谁能阻止这一切循环往复的发生? void BEM () { int pips; for (int k=0; k<OrdersTotal (); k++) { OrderSelect(k, SELECT_BY_POS, MODE_TRADES)。 如果(OrderType()==OP_BUY && OrderSymbol()==Symbol () && OrderMagicNumber()==Magic) { pips = (Bid - OrderOpenPrice())/Point; 如果((pips >= BE) && (OrderStopLoss() < OrderOpenPrice())) { OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()+ 12*Point, OrderTakeProfit (), 0, LightBlue); } } 如果(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { pips = (OrderOpenPrice() - Ask)/Point; 如果((pips >= BE) && (OrderStopLoss() > OrderOpenPrice())) { OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()- 12*Point, OrderTakeProfit (), 0, Pink); } } } } 1...113114115116117118119120121122123124125126127...347 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
matrixebiz 你说的删除这两行是什么意思;我怎么做呢,我无法进入我试过的AC指标的代码。
你在MetaEditor中打开Accelerator.mq4(它在你的指标文件夹中),在这两行前面加上//,然后保存为新名称AcceleratorMod.mq4,然后点击编译。
不,这是不正确的。
在for循环中,你从6开始,递减到1。这意味着在for循环执行的最后一环,它进行了 "if (i == 1) qqeacross = True; "检查。最终结果是,如果qqeacross发生了,输出将是真。
这可能带来的唯一问题是,如果qqeacross在之前的循环中被设置为真。为了克服这个问题,你应该在for循环之前设置qqeacross = false; 。通过这种方式,你可以确保如果qqeacross = true,那么它是由刚刚完成的循环设置的。
干杯。
hiachiever因此,即使它说 "如果(i == 1)qqeacross = True;",然后i=4(因为倒计时),qqeacross仍将= True?
谢谢hiachiever!
做到这一点的方法是在全局范围内创建一个变量(即在init之前)。
譬如
int BarCount;
int init ()
然后在你的止损代码中使用以下内容。
如果(BarCount<Bars)
{
SL=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,StopLossBars,0)) 。
StopLossBars++;
BarCount=Bars。
}
这将使StopLossBars在每个新条形上增加1。
对你的代码唯一的补充是,当新的交易开始时,将 "StopLossBars "重置为原来的默认值。
谢谢。
欢欢谢谢你,hiachiever,你的帮助非常好,不过我还想请你帮一个小忙。
我想我明白你的代码是如何工作的,我确信我可以把它复制到我的EA 。 但我不确定如何将止损点重置为默认值。 这是EA最后的代码,用于做多或做空。
{
int ticket = OrderSend(Symbol(),OP_BUY,GetLots(100),Ask,maxSlippage,0,0,"Long",MagicNumber,0,Green);
if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);
if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");
Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Long");
}
void goShort()
{
int ticket = OrderSend(Symbol(),OP_SELL,GetLots(100),Bid,maxSlippage,0,0,"Short",MagicNumber,0,Red);
if (screenshots) WindowScreenShot(Symbol()+Period()+"_"+Hour()+Minute()+"_.gif",1024,768);
if (showAlerts) Alert(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");
Print(Symbol()+" "+Period()+" TrendLevel at "+DoubleToStr(Level,0)+": Going Short");
}
double stopLoss(int ordertype)能否请您帮助提供一些重置止损点的代码?
再次感谢。
matrixebiz 我已经做了,现在我无法编译我的EA,当我在我的EA中加入以下几行时
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; // Lime 变为 Red。
我得到12个错误。AC变量没有定义。
我想感谢你的帮助。
我想StopLossBars是一个全局变量,通过用户输入来设置,对吗?
那么我的做法是这样的。
让用户输入的变量是gStopLossBars,然后在你的初始函数 中把它分配给你的本地变量,比如......
StopLossBars = gStopLossBars。
然后在你的买入和卖出函数中简单地使用同样的赋值来重置StopLossBars。
有意义吗?
希望这对你有帮助。
拉克斯
Ac+ao+psar
大家好。
有谁能把AC+AO+PSAR结合起来成为一个新的带有警报/邮件的指标?请给我发邮件。谢谢。
我想StopLossBars是一个全局变量,通过用户输入来设置,对吗?
我的做法是这样的。
让用户输入的变量是gStopLossBars,然后在你的初始函数中把它分配给你的本地变量,比如...
StopLossBars = gStopLossBars。
然后在你的买入和卖出函数中简单地使用同样的赋值来重置StopLossBars。
有意义吗?
希望这有帮助。
卢克斯这很有意义。 非常感谢。
我怎样才能检测到新的蜡烛开始的时间?
请谁给我一些建议,我怎样才能创建一个EA,在新的蜡烛开始时发出一个挂单(每日TF)?
谢谢
请谁给我一些建议,我怎样才能创建一个EA,在新条形图开始时发出挂单(日线TF)? 谢谢
有谁能阻止这一切循环往复的发生?
void BEM ()
{
int pips;
for (int k=0; k<OrdersTotal (); k++)
{
OrderSelect(k, SELECT_BY_POS, MODE_TRADES)。
如果(OrderType()==OP_BUY && OrderSymbol()==Symbol () && OrderMagicNumber()==Magic)
{
pips = (Bid - OrderOpenPrice())/Point;
如果((pips >= BE) && (OrderStopLoss() < OrderOpenPrice()))
{
OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()+ 12*Point, OrderTakeProfit (), 0, LightBlue);
}
}
如果(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
pips = (OrderOpenPrice() - Ask)/Point;
如果((pips >= BE) && (OrderStopLoss() > OrderOpenPrice()))
{
OrderModify (OrderTicket (), OrderOpenPrice (),OrderOpenPrice ()- 12*Point, OrderTakeProfit (), 0, Pink);
}
}
}
}