如何编码? - 页 341 1...334335336337338339340341342343344345346347 新评论 Mastercash 2015.06.26 07:13 #3401 谁能好心帮我解决这个问题。 我在这封信下面附上的代码有一个问题......,它总是在蜡烛形成的开始阶段给出信号!这导致我在较高的时间框架上迟迟不能进入交易。 这导致我在较高的时间框架内迟迟不能进入交易。你能不能帮助我们,让iny只在当前价格桥MA向上买入或向下卖出时发出警报,而不是等待另一根蜡烛的开始。 谢谢你,附上的文件 附加的文件: smacd.mq4 4 kb tkuan77 2015.09.01 03:52 #3402 嗨,Mladen,你知道我可以用什么来触发我的开盘交易标准吗? 我想知道的是,如果蜡烛收盘时高于或低于移动平均线10个点,我怎样才能触发交易。 系统将根据收盘价是高于还是低于移动平均线来触发交易。 我在考虑使用iClose,但不知道如何实现它。感谢你的帮助。 谢谢。 阮文杰 tkuan77 2015.09.01 04:51 #3403 tkuan77: 嗨,Mladen,你知道我可以用什么来触发我的开仓交易标准吗?我想知道的是,如果蜡烛的收盘价高于或低于移动平均线10点,我怎样才能触发交易。 系统将根据收盘价是高于还是低于移动平均线来触发交易。 我在考虑使用iClose,但不知道如何实现它。感谢你的帮助。 谢谢。 莱恩 你好,姆拉登。 我已经写好了代码,它似乎在工作,但是,当满足条件时,交易有时不会被触发,我不知道从现在开始该如何去做。 //+------------------------------------------------------------------+ //---- 输入参数 extern double TakeProfit = 250.0; extern double Lots = 0.1; extern double StopLoss = 200.0; //+------------------------------------------------------------------+ //|专家初始化函数| //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家的去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ double pBid, pAsk; datetime newbar; int start() { //+------------------------------------------------------------------+ 如果(newbar==Time[0])返回(0)。 否则newbar=Time[0]。 //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0)。 double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0); //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //-- 触发交易 //+------------------------------------------------------------------+ int ticket, total; double CD_Close = iClose(NULL,0,1); total = OrdersTotal(); // 检查当前开放的交易总数 if(total < 2) { 如果(CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st &&Minute()==Entry_Minute_1st) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point, Ask+TakeProfit*Point, "My EA",Entry_magicNo_1st,0,Green)。 返回(0)。 } 如果(CD_Close <= Dwn_MA-50*Point) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point, Bid-TakeProfit*Point, "My EA",Entry_magicNo_1st,0,Red)。 返回(0)。 } return(0); } return(0); } //+------------------------------------------------------------------+ How to code? 编码帮助 [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 Mladen Rakic 2015.09.01 05:44 #3404 tkuan77: 你好,姆拉登。我已经写好了代码,它似乎在工作,但是,当满足条件时,交易有时不会被触发,我不知道从现在开始该怎么做了。 //+------------------------------------------------------------------+ //---- 输入参数 extern double TakeProfit = 250.0; extern double Lots = 0.1; extern double StopLoss = 200.0; //+------------------------------------------------------------------+ //|专家初始化函数 | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家的去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ double pBid, pAsk; datetime newbar; int start() { //+------------------------------------------------------------------+ 如果(newbar==Time[0])返回(0)。 否则newbar=Time[0]。 //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0)。 double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0); //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //-- 触发交易 //+------------------------------------------------------------------+ int ticket, total; double CD_Close = iClose(NULL,0,1); total = OrdersTotal(); // 检查当前开放的交易总数 if(total < 2) { 如果(CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st &&Minute()==Entry_Minute_1st) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point, Ask+TakeProfit*Point, "My EA",Entry_magicNo_1st,0,Green)。 返回(0)。 } 如果(CD_Close <= Dwn_MA-50*Point) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point, Bid-TakeProfit*Point, "My EA",Entry_magicNo_1st,0,Red)。 返回(0)。 } return(0); } return(0); } //+------------------------------------------------------------------+ 你能展示一些应该触发交易而没有触发的情况吗? tkuan77 2015.09.01 06:04 #3405 嗨,Mladen。 请看附件中的截图。 谢谢 阮先生 附加的文件: untitled.jpg 42 kb tkuan77 2015.09.01 06:54 #3406 嗨,Mladen,会不会是某些行的某种形式的错误导致了这个错误? 谢谢 Mladen Rakic 2015.09.01 09:17 #3407 tkuan77: 嗨,Mladen,会不会是某些行的错误导致了这个错误?谢谢 tkuan77 第一步,检查 终端的日志和专家标签,是否有一些错误信息写在那里 tkuan77 2015.09.03 07:14 #3408 mladen: tkuan77 作为第一步,检查终端的日志和专家标签,如果那里写有一些错误信息 嗨,mladen,谢谢,这个问题已经解决了。 然而,我的下一个问题是,我如何对交易进行相应的排序? 比如说。 在任何时间点的交易总量=2 每组标准有1笔交易。我如何确保系统不会在每组标准满足一次以上的情况下触发1次以上的交易? 以下是我的代码供参考。 total = OrdersTotal(); //检查 当前开放的交易总数 if(total < 2) { 如果(Hour()==Entry_Hour_1st || Hour()==Entry_Hour_2nd) { //如果在此条件下当前没有交易,检查是否满足条件,如果是,触发交易,如果不是,不触发交易。 } 如果(Hour()==Entry_Hour_3rd || Hour()==Entry_Hour_4th) { //如果在这个标准下目前没有交易,检查是否满足条件,如果是,触发交易,如果不是,不触发交易。 } } 非常感谢您的建议。谢谢。 谢谢。 learning 2015.10.09 16:03 #3409 ECN经纪商的订单到底应该如何处理? Mladen Rakic 2015.10.09 17:16 #3410 apprentice coder: ECN经纪商的订单到底应该如何处理? 编码学徒 唯一的区别是,在ECN经纪商上,你首先打开一个0 sl和tp字段的订单,然后修改订单(如果需要)以设置sl和tp,而在 "普通 "经纪商上,你可以在打开订单时放置sl和tp。 其余的都是完全一样的 1...334335336337338339340341342343344345346347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谁能好心帮我解决这个问题。
我在这封信下面附上的代码有一个问题......,它总是在蜡烛形成的开始阶段给出信号!这导致我在较高的时间框架上迟迟不能进入交易。
这导致我在较高的时间框架内迟迟不能进入交易。你能不能帮助我们,让iny只在当前价格桥MA向上买入或向下卖出时发出警报,而不是等待另一根蜡烛的开始。
谢谢你,附上的文件
嗨,Mladen,你知道我可以用什么来触发我的开盘交易标准吗?
我想知道的是,如果蜡烛收盘时高于或低于移动平均线10个点,我怎样才能触发交易。
系统将根据收盘价是高于还是低于移动平均线来触发交易。
我在考虑使用iClose,但不知道如何实现它。感谢你的帮助。
谢谢。
阮文杰
嗨,Mladen,你知道我可以用什么来触发我的开仓交易标准吗?
我想知道的是,如果蜡烛的收盘价高于或低于移动平均线10点,我怎样才能触发交易。
系统将根据收盘价是高于还是低于移动平均线来触发交易。
我在考虑使用iClose,但不知道如何实现它。感谢你的帮助。
谢谢。
莱恩你好,姆拉登。
我已经写好了代码,它似乎在工作,但是,当满足条件时,交易有时不会被触发,我不知道从现在开始该如何去做。
//+------------------------------------------------------------------+
//---- 输入参数
extern double TakeProfit = 250.0;
extern double Lots = 0.1;
extern double StopLoss = 200.0;
//+------------------------------------------------------------------+
//|专家初始化函数|
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家的去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
double pBid, pAsk;
datetime newbar;
int start()
{
//+------------------------------------------------------------------+
如果(newbar==Time[0])返回(0)。
否则newbar=Time[0]。
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0)。
double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0);
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//-- 触发交易
//+------------------------------------------------------------------+
int ticket, total;
double CD_Close = iClose(NULL,0,1);
total = OrdersTotal(); // 检查当前开放的交易总数
if(total < 2)
{
如果(CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st &&Minute()==Entry_Minute_1st)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point, Ask+TakeProfit*Point,
"My EA",Entry_magicNo_1st,0,Green)。
返回(0)。
}
如果(CD_Close <= Dwn_MA-50*Point)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point, Bid-TakeProfit*Point,
"My EA",Entry_magicNo_1st,0,Red)。
返回(0)。
}
return(0);
}
return(0);
}
//+------------------------------------------------------------------+
你好,姆拉登。
我已经写好了代码,它似乎在工作,但是,当满足条件时,交易有时不会被触发,我不知道从现在开始该怎么做了。
//+------------------------------------------------------------------+
//---- 输入参数
extern double TakeProfit = 250.0;
extern double Lots = 0.1;
extern double StopLoss = 200.0;
//+------------------------------------------------------------------+
//|专家初始化函数 |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家的去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
double pBid, pAsk;
datetime newbar;
int start()
{
//+------------------------------------------------------------------+
如果(newbar==Time[0])返回(0)。
否则newbar=Time[0]。
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0)。
double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0);
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//-- 触发交易
//+------------------------------------------------------------------+
int ticket, total;
double CD_Close = iClose(NULL,0,1);
total = OrdersTotal(); // 检查当前开放的交易总数
if(total < 2)
{
如果(CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st &&Minute()==Entry_Minute_1st)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point, Ask+TakeProfit*Point,
"My EA",Entry_magicNo_1st,0,Green)。
返回(0)。
}
如果(CD_Close <= Dwn_MA-50*Point)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point, Bid-TakeProfit*Point,
"My EA",Entry_magicNo_1st,0,Red)。
返回(0)。
}
return(0);
}
return(0);
}
//+------------------------------------------------------------------+你能展示一些应该触发交易而没有触发的情况吗?
嗨,Mladen。
请看附件中的截图。
谢谢
阮先生
嗨,Mladen,会不会是某些行的某种形式的错误导致了这个错误?
谢谢
嗨,Mladen,会不会是某些行的错误导致了这个错误?谢谢
tkuan77
第一步,检查 终端的日志和专家标签,是否有一些错误信息写在那里
tkuan77 作为第一步,检查终端的日志和专家标签,如果那里写有一些错误信息
嗨,mladen,谢谢,这个问题已经解决了。
然而,我的下一个问题是,我如何对交易进行相应的排序?
比如说。
在任何时间点的交易总量=2
每组标准有1笔交易。我如何确保系统不会在每组标准满足一次以上的情况下触发1次以上的交易?
以下是我的代码供参考。
total = OrdersTotal(); //检查 当前开放的交易总数
if(total < 2)
{
如果(Hour()==Entry_Hour_1st || Hour()==Entry_Hour_2nd)
{
//如果在此条件下当前没有交易,检查是否满足条件,如果是,触发交易,如果不是,不触发交易。
}
如果(Hour()==Entry_Hour_3rd || Hour()==Entry_Hour_4th)
{
//如果在这个标准下目前没有交易,检查是否满足条件,如果是,触发交易,如果不是,不触发交易。
}
}
非常感谢您的建议。谢谢。
谢谢。
ECN经纪商的订单到底应该如何处理?
ECN经纪商的订单到底应该如何处理?
编码学徒
唯一的区别是,在ECN经纪商上,你首先打开一个0 sl和tp字段的订单,然后修改订单(如果需要)以设置sl和tp,而在 "普通 "经纪商上,你可以在打开订单时放置sl和tp。 其余的都是完全一样的