如何编码? - 页 22 1...151617181920212223242526272829...347 新评论 Kale 2007.03.13 13:53 #211 当你有一个十字星时,你总是可以写int crossTime = Time[0],然后使用iBarShift函数,使用crossTime变量来检查通过了多少个条。 SaxMan 2007.03.13 15:09 #212 你好,Kalenzo。 Kalenzo: 当你有一个十字星时,你可以写int crossTime = Time[0],然后使用iBarShift函数,使用crossTime变量来检查有多少个柱子通过。 你如何编写这段代码,以便在计数中只包括 "熊市"? 我理解ibarshift,但这将包括自交叉点以来的所有条形。 你仍然需要使用像我这样的计数系统来计算 "熊市",我相信这就是我的问题所在。 我最初用这个代码测试了我的代码....该代码运行良好,....,但没有转化为上述代码,实际上在我的EA中列出。 int start() { //---- double f=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,0); double s=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,0); double fp=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,1); double sp=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,1); static bool CrossedUP,CrossedDn; static int Count=0; if(f>s && fp<=sp) { CrossedUP=true; CrossedDn=false; Alert(Symbol()," Crossed UP"); Count=0; } else if(f=sp) { CrossedUP=false; CrossedDn=true; Alert(Symbol()," Crossed Down"); Count=0; } if(NewBar()==true && f>s || f<s) Count++; Comment("Crossed UP: ",CrossedUP," Crossed Down: ",CrossedDn," Bars since Cross: ",Count); //---- return(0); } 如果您有任何其他想法,我们将不胜感激。 谢谢。 萨克斯曼 How to code? Expert Advisor Script Manual/Userguide 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 SaxMan 2007.03.13 15:26 #213 对不起,煎蛋。 这个也不能用 谢谢。 萨克斯曼 omelette: 嗨,试试这个。bool LongClose() { if(MAFastC=MASlowP) { CrossedUp=false; CrossedDn=true; BarCount=0; } else if(MAFastC>MASlowC && MAFastP<=MASlowP) { CrossedUp=true; CrossedDn=false; BarCount=0; Alert("Crossed Down"); } if(CrossedDn==true && NewBar()==true && Candle3mP=="Bear") BarCount++; if(BarCount>=2 && Candle3mC=="Bear") { Alert("Close Long Position"); return(true); } else return(false); islandrock 2007.03.18 17:02 #214 EA代码的时间限制 我无法在我的EA上设置时间限制 代码行是这样的。 OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green) 我试着把ZERO改为1或12,但我不能让它停止交易......我想让交易在12小时内到期,我该怎么做? 我正在使用一个回溯测试,以确保它的工作。 xxDavidxSxx 2007.03.18 21:30 #215 试试这个.... { string expire_date = "2007.10.22"; datetime expirevar = StrToTime(expire_date); 如果 ( CurTime() >= expirevar ) { 警告("版本已过期")。 return(0); } //代码 return(0); } 戴夫 MisBHavin 2007.03.18 21:39 #216 islandrock: 我无法在我的EA上设置一个时间限制。代码行如下。 OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green) 我试着把ZERO改为1或12,但我不能让它停止交易......我想让交易在12小时内到期,我该怎么做? 我正在使用一个回溯测试,以确保它的工作。 检查错误通道。 在一些交易服务器中,挂单到期时间的应用可以被禁用。在这种情况下,当在过期 参数中指定一个非零值时,将产生错误 147(ERR_TRADE_EXPIRATION_DENIED)。 该参数是一个 "数据时间 "变量,我不相信12会属于该变量的声明范围。 omelette 2007.03.18 21:41 #217 islandrock: 我无法在我的EA上设置一个时间限制。代码行如下。 OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green) 我试着把ZERO改为1或12,但我不能让它停止交易......我想让交易在12小时内到期,我该怎么做? 我正在使用一个回溯测试,以确保它的工作。 过期 时间在MT中运行良好,唯一需要注意的是,有些经纪商不允许这样做--FXDD就是一个。 过期时间必须是日期 格式,才能发挥作用--即。 datetime ExpirationTime = StrToTime(TimeYear(Time[0]) + "." + TimeMonth(Time[0])+ "." + TimeDay(Time[0])+" "+23+":"+55); OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point,"timetest",16384,ExpirationTime,Green); islandrock 2007.03.18 22:50 #218 我一直在尝试这样做。 外置 int TradeLifeHour=12; 外置 int TradeLifeMin=00; datetime expirationtime; (不知道这里该怎么写) 然后在start()中 expirationtime = CurTime()+TradeLifeHour*60*60+TradeLifeMin*60。 并在0 区域内使用 expirationtime。 我有最后一段代码,但我不知道如何配置它以使交易在12小时内到期。 xxDavidxSxx 2007.03.18 22:56 #219 xxDavidxSxx: 试试这个....{ string expire_date = "2007.10.22"; datetime expirevar = StrToTime(expire_date); 如果 ( CurTime() >= expirevar ) { 警告("版本已过期")。 return(0); } //代码 return(0); } 戴夫 我刚刚使用了我给你的代码。我把日期改成了2006年,然后把它放在一个真钱FXDD账户的Bipoler里面的一个随机位置,结果效果很好。 也许是我太简单了?我不知道 戴夫 islandrock 2007.03.18 23:21 #220 ?? 这段代码并没有使我的EA开启的每笔交易在开启后的12小时内到期... 1...151617181920212223242526272829...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
当你有一个十字星时,你总是可以写int crossTime = Time[0],然后使用iBarShift函数,使用crossTime变量来检查通过了多少个条。
你好,Kalenzo。
当你有一个十字星时,你可以写int crossTime = Time[0],然后使用iBarShift函数,使用crossTime变量来检查有多少个柱子通过。
你如何编写这段代码,以便在计数中只包括 "熊市"?
我理解ibarshift,但这将包括自交叉点以来的所有条形。 你仍然需要使用像我这样的计数系统来计算 "熊市",我相信这就是我的问题所在。
我最初用这个代码测试了我的代码....该代码运行良好,....,但没有转化为上述代码,实际上在我的EA中列出。
{
//----
double f=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,0);
double s=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,0);
double fp=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,1);
double sp=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,1);
static bool CrossedUP,CrossedDn;
static int Count=0;
if(f>s && fp<=sp)
{
CrossedUP=true;
CrossedDn=false;
Alert(Symbol()," Crossed UP");
Count=0;
}
else
if(f=sp){
CrossedUP=false;
CrossedDn=true;
Alert(Symbol()," Crossed Down");
Count=0;
}
if(NewBar()==true && f>s || f<s) Count++;
Comment("Crossed UP: ",CrossedUP," Crossed Down: ",CrossedDn," Bars since Cross: ",Count);
//----
return(0);
}如果您有任何其他想法,我们将不胜感激。
谢谢。
萨克斯曼
对不起,煎蛋。
这个也不能用
谢谢。
萨克斯曼
嗨,试试这个。
{
if(MAFastC=MASlowP){
CrossedUp=false;
CrossedDn=true;
BarCount=0;
}
else
if(MAFastC>MASlowC && MAFastP<=MASlowP)
{
CrossedUp=true;
CrossedDn=false;
BarCount=0;
Alert("Crossed Down");
}
if(CrossedDn==true && NewBar()==true && Candle3mP=="Bear")
BarCount++;
if(BarCount>=2 && Candle3mC=="Bear")
{
Alert("Close Long Position");
return(true);
}
else return(false);EA代码的时间限制
我无法在我的EA上设置时间限制
代码行是这样的。
OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green)
我试着把ZERO改为1或12,但我不能让它停止交易......我想让交易在12小时内到期,我该怎么做?
我正在使用一个回溯测试,以确保它的工作。
试试这个....
{
string expire_date = "2007.10.22";
datetime expirevar = StrToTime(expire_date);
如果 ( CurTime() >= expirevar )
{
警告("版本已过期")。
return(0);
}
//代码
return(0);
}
戴夫
我无法在我的EA上设置一个时间限制。
代码行如下。
OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green)
我试着把ZERO改为1或12,但我不能让它停止交易......我想让交易在12小时内到期,我该怎么做?
我正在使用一个回溯测试,以确保它的工作。检查错误通道。
在一些交易服务器中,挂单到期时间的应用可以被禁用。在这种情况下,当在过期 参数中指定一个非零值时,将产生错误 147(ERR_TRADE_EXPIRATION_DENIED)。
该参数是一个 "数据时间 "变量,我不相信12会属于该变量的声明范围。
我无法在我的EA上设置一个时间限制。
代码行如下。
OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green)
我试着把ZERO改为1或12,但我不能让它停止交易......我想让交易在12小时内到期,我该怎么做?
我正在使用一个回溯测试,以确保它的工作。过期 时间在MT中运行良好,唯一需要注意的是,有些经纪商不允许这样做--FXDD就是一个。 过期时间必须是日期 格式,才能发挥作用--即。
我一直在尝试这样做。
外置 int TradeLifeHour=12;
外置 int TradeLifeMin=00;
datetime expirationtime; (不知道这里该怎么写)
然后在start()中
expirationtime = CurTime()+TradeLifeHour*60*60+TradeLifeMin*60。
并在0 区域内使用 expirationtime。
我有最后一段代码,但我不知道如何配置它以使交易在12小时内到期。
试试这个....
{
string expire_date = "2007.10.22";
datetime expirevar = StrToTime(expire_date);
如果 ( CurTime() >= expirevar )
{
警告("版本已过期")。
return(0);
}
//代码
return(0);
}
戴夫我刚刚使用了我给你的代码。我把日期改成了2006年,然后把它放在一个真钱FXDD账户的Bipoler里面的一个随机位置,结果效果很好。
也许是我太简单了?我不知道
戴夫
??
这段代码并没有使我的EA开启的每笔交易在开启后的12小时内到期...