问吧! - 页 76 1...697071727374757677787980818283...182 新评论 claypot 2007.08.22 20:47 #751 EA问题 嗨,Codersguru。 我正在尝试学习编程,并正在使用您的材料,让我说它非常好!一步一步,简单易懂,谢谢。 我有个问题,既然你用ema交叉作为EA的例子,我想用stepMA_7.2指标代替ema。你认为stepMA_7.2能行吗?还是需要重新安排代码,或者可能需要更多的额外代码? 我在想,只要在代码中交换指标就可以了。 谢谢 祝贺你。 Scirus 2007.08.23 01:36 #752 Michel: 这是错的:以前的条形图是正数,MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,0,MODE_LWMA,PRICE_WEIGHTED,-1);[/PHP] Use this instead:[PHP]MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,0,MODE_LWMA,PRICE_WEIGHTED,1); 谢谢你。 justize 2007.08.23 06:19 #753 Scirus 2007.08.24 13:59 #754 我仍然有一些问题。买入订单被正确打开,但所有的订单都在止损处关闭,忽略了退出条件。 //+------------------------------------------------------------------+ //| EA Stripped Down.mq4 | //+------------------------------------------------------------------+ #property copyright "" #property link "" extern double StopLoss =13.0; extern double MA_Open =12.0; extern double MA_Close =12.0; extern double MA_Exit =6.0; extern double Lots =50.0; #define MAGICMA 20050610 //+------------------------------------------------------------------+ int init() { return(0); } int deinit() { return(0); } //+------------------------------------------------------------------+ int start() { //+------------------------------------------------------------------+ double MA_CLOSE; double MA_OPEN; double MA_EXIT_0; double MA_EXIT_1; int res; if(Volume[0]>1) return; MA_CLOSE=iMA(NULL,0,MA_Close,1,MODE_SMA,PRICE_CLOSE,0); MA_OPEN=iMA(NULL,0,MA_Open,1,MODE_SMA,PRICE_OPEN,0); MA_EXIT_0=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0); MA_EXIT_1=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1); if((MA_CLOSE-MA_OPEN>=1*Point) && MA_EXIT_0>MA_EXIT_1) { res=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-StopLoss*Point,0,"",MAGICMA,0,Blue); return; } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ if(Volume[0]>1) return; MA_EXIT_0=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0); MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1); if(OrderType()==OP_BUY) { if(MA_EXIT_0<=MA_EXIT_1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White); return; } //+------------------------------------------------------------------+ } Ask! 哪位高人可以把这个EA的每一句代表什么意思做个翻译!你会有意想不到的收获! [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 1Dave7 2007.08.26 00:29 #755 1Dave7 2007.08.26 00:40 #756 另一个指标的移动 平均线 弄明白了。 sbguy 2007.08.27 08:48 #757 检查 一个范围内的未平仓头寸 我试图检查x点内的未平仓头寸,如果没有头寸,就会开一个。它不起作用,只是连续开仓,谁能帮帮我? 如果(buyingPosition) { weBeBuying = true; totalorders = OrdersTotal(); for(i=0;i<totalorders;i++) { OrderSelect(i,SELECT_BY_POS)。 如果((OrderSymbol()==Symbol()) && (OrderMagicNumber()==magicNumber) { type = OrderType()。 如果((type == OP_BUY) || (type == OP_BUYLIMIT)) { 如果(((Bid+spread) - OrderOpenPrice()) > -0.0013) weBeBuying = false; } } } } 如果(weBeBuying==true) OrderSend(Symbol(),OP_BUY,lot,Bid+spread,slipage,0,0,NULL,magicNumber,0,Green)。 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 EA不会在多对上运行,需要帮助 1Dave7 2007.08.28 15:18 #758 自定义指标 的MA 我如何在EA中编写语句来引用iCustom指标的7,Smooth的移动平均线? 这相当于使用第一个指标数据的移动平均线。 你可以在显示一个iCustom指标并拥有该指标的MA(使用第一个指标数据)时做到这一点,但你如何在EA中编码? 请帮助我解决这个问题! 我提前感谢您的帮助! 戴夫 谁能帮助解决这个问题????请!!!! 我想我明白了!。 LR0=iCustom(NULL,0, "Laguerre RSI LONG & SHORT ENTRY",0,0); //LOWER GAMMA 仍然需要帮助 - 你能帮助我吗! [删除] 2007.08.28 17:56 #759 在这里,您可以发布与MQL4有关的问题,我会尽力回答。 关于错误代码。 我刚刚返回账户,在我所有的专家中,我有一个错误代码 "OrderModify error 1",即使是像下面这位Coders Guru的专家。 为什么? 谢谢! //+------------------------------------------------------------------+ //| PriceCross.mq4 | | //| Coders Guru | //|https://www.mql5.com/en/forum| //+------------------------------------------------------------------+ #财产版权 "Coders Guru" #property link "https://www.forex-tsd.com" //---- 包括 #include //---- 交易限制 extern double TakeProfit = 200; extern double TrailingStop = 50; extern double StopLoss = 50; extern double Lots = 0.1; extern int Slippage = 5; //---- 外部选项 外置 int CurrentBar = 1; External int HedgeLevel = 6; 外置双倍到期日=7200。 extern int Size = 4; extern int Step = 1; 外部 bool UseClose = true; //---指标设置 Extern int MaMode = 3; extern int MaPeriod = 24; //--- 全局变量 int MagicNumber = 101090; string ExpertComment = "PriceCross"; bool LimitPairs = true; bool LimitFrame = true; int TimeFrame = 60; string LP[] = {"EURUSD", "USDCHF", "GBPUSD", "USDJPY"}; // 添加/删除你想限制的paris。 bool Optimize = true; int NumberOfTries = 5; //+------------------------------------------------------------------ int init() { 返回(0)。 } int deinit() { return(0); } //+------------------------------------------------------------------ bool isNewSymbol(string current_symbol) { //循环所有打开的订单并比较符号 int total = OrdersTotal(); for(int cnt = 0 ; cnt < total ; cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。 string selected_symbol = OrderSymbol(); 如果(current_symbol == selected_symbol && OrderMagicNumber()==MagicNumber) 返回(False)。 } 返回(True)。 } //+------------------------------------------------------------------+ int start() { int cnt, ticket, total,n; 双重趋势。 if(Bars<100) {Print("bar less than 100"); return(0);} 如果(LimitFrame) { if(Period()!=TimeFrame) {Print("This EA is not working with this TimeFrame!"); return(0); } } 如果(LimitPairs) { if(AllowedPair(Symbol()) == false) {Print("This EA is not working with this Currency!"); return(0);} } trend = iMA(NULL,0,MaPeriod,0,MaMode,PRICE_CLOSE,CurrentBar) 。 //--- 交易条件 bool BuyCondition = false , SellCondition = false , CloseBuyCondition = false , CloseSellCondition = false 。 如果(Open[1]趋势) BuyCondition = true。 如果(Open[1]>trend && Close[1]<trend) SellCondition = true。 如果(Open[1]>trend && Close[1]<trend) CloseBuyCondition = true。 如果(Open[1]趋势) CloseSellCondition = true。 total = OrdersTotal(); 如果(total < 1 || isNewSymbol(Symbol())) { 如果(BuyCondition) //<-- 买入条件 { ticket = OpenOrder(OP_BUY); //<-- 打开BUY订单 CheckError(ticket, "BUY"); for(n=0; n< Size; n++) { ticket = OpenPendingOrder(OP_BUYSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration) 。 } 返回(0)。 } if(SellCondition) //<--卖出条件 { ticket = OpenOrder(OP_SELL); //<--打开卖出订单 CheckError(ticket, "SELL"); for(n=0; n < Size; n++) { ticket = OpenPendingOrder(OP_SELLSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration) 。 } 返回(0)。 } return(0); } for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。 如果(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) { 如果(OrderType()==OP_BUY) //<-- 多头仓位被打开 { 如果(UseClose) { if(CloseBuyCondition) //<-- 关闭订单并退出! { CloseOrder(OrderType()); return(0); } } TrailOrder(OrderType()); return(0); //<--追踪订单 } if(OrderType()==OP_SELL) //<-- 进入空头状态 { 如果(UseClose) { if(CloseSellCondition) //<-- 关闭订单并退出! { CloseOrder(OP_SELL); return(0); } } TrailOrder(OrderType()); return(0); //<--追踪订单 } } } return(0); } //+------------------------------------------------------------------+ .... 如何编码? Ask! Ojala EA Hartadi 2007.08.29 01:25 #760 你好。 有没有办法让我们知道一个订单已经关闭? 图例是这样的。 我开了2个挂单。 打开#182买入限额0.17 EURUSD在1.3005 sl: 1.2970 tp: 1.3013 打开#183买入限额0.17 EURUSD在1.3000 sl: 1.2968 tp: 1.3011 然后 订单#182,买入0.17欧元兑美元在1.3005处开仓 在1.3013(1.3013/1.3015)处获利#182 我想在订单#182关闭后删除订单#183。触发条件是如果订单#182关闭,那么订单#183将被删除。 欢呼声 1...697071727374757677787980818283...182 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
EA问题
嗨,Codersguru。
我正在尝试学习编程,并正在使用您的材料,让我说它非常好!一步一步,简单易懂,谢谢。
我有个问题,既然你用ema交叉作为EA的例子,我想用stepMA_7.2指标代替ema。你认为stepMA_7.2能行吗?还是需要重新安排代码,或者可能需要更多的额外代码?
我在想,只要在代码中交换指标就可以了。
谢谢
祝贺你。
这是错的:以前的条形图是正数,
谢谢你。
我仍然有一些问题。买入订单被正确打开,但所有的订单都在止损处关闭,忽略了退出条件。
//| EA Stripped Down.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
extern double StopLoss =13.0;
extern double MA_Open =12.0;
extern double MA_Close =12.0;
extern double MA_Exit =6.0;
extern double Lots =50.0;
#define MAGICMA 20050610
//+------------------------------------------------------------------+
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
//+------------------------------------------------------------------+
double MA_CLOSE;
double MA_OPEN;
double MA_EXIT_0;
double MA_EXIT_1;
int res;
if(Volume[0]>1) return;
MA_CLOSE=iMA(NULL,0,MA_Close,1,MODE_SMA,PRICE_CLOSE,0);
MA_OPEN=iMA(NULL,0,MA_Open,1,MODE_SMA,PRICE_OPEN,0);
MA_EXIT_0=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if((MA_CLOSE-MA_OPEN>=1*Point) && MA_EXIT_0>MA_EXIT_1)
{
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-StopLoss*Point,0,"",MAGICMA,0,Blue);
return;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
if(Volume[0]>1) return;
MA_EXIT_0=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if(OrderType()==OP_BUY)
{
if(MA_EXIT_0<=MA_EXIT_1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
return;
}
//+------------------------------------------------------------------+
}另一个指标的移动 平均线
弄明白了。
检查 一个范围内的未平仓头寸
我试图检查x点内的未平仓头寸,如果没有头寸,就会开一个。它不起作用,只是连续开仓,谁能帮帮我?
如果(buyingPosition)
{
weBeBuying = true;
totalorders = OrdersTotal();
for(i=0;i<totalorders;i++)
{
OrderSelect(i,SELECT_BY_POS)。
如果((OrderSymbol()==Symbol()) && (OrderMagicNumber()==magicNumber)
{
type = OrderType()。
如果((type == OP_BUY) || (type == OP_BUYLIMIT))
{
如果(((Bid+spread) - OrderOpenPrice()) > -0.0013)
weBeBuying = false;
}
}
}
}
如果(weBeBuying==true)
OrderSend(Symbol(),OP_BUY,lot,Bid+spread,slipage,0,0,NULL,magicNumber,0,Green)。
自定义指标 的MA
我如何在EA中编写语句来引用iCustom指标的7,Smooth的移动平均线? 这相当于使用第一个指标数据的移动平均线。 你可以在显示一个iCustom指标并拥有该指标的MA(使用第一个指标数据)时做到这一点,但你如何在EA中编码?
请帮助我解决这个问题!
我提前感谢您的帮助!
戴夫
谁能帮助解决这个问题????请!!!!
我想我明白了!。
LR0=iCustom(NULL,0, "Laguerre RSI LONG & SHORT ENTRY",0,0); //LOWER GAMMA
仍然需要帮助 - 你能帮助我吗!
在这里,您可以发布与MQL4有关的问题,我会尽力回答。
关于错误代码。
我刚刚返回账户,在我所有的专家中,我有一个错误代码 "OrderModify error 1",即使是像下面这位Coders Guru的专家。
为什么?
谢谢!
//+------------------------------------------------------------------+
//| PriceCross.mq4 | |
//| Coders Guru |
//|https://www.mql5.com/en/forum|
//+------------------------------------------------------------------+
#财产版权 "Coders Guru"
#property link "https://www.forex-tsd.com"
//---- 包括
#include
//---- 交易限制
extern double TakeProfit = 200;
extern double TrailingStop = 50;
extern double StopLoss = 50;
extern double Lots = 0.1;
extern int Slippage = 5;
//---- 外部选项
外置 int CurrentBar = 1;
External int HedgeLevel = 6;
外置双倍到期日=7200。
extern int Size = 4;
extern int Step = 1;
外部 bool UseClose = true;
//---指标设置
Extern int MaMode = 3;
extern int MaPeriod = 24;
//--- 全局变量
int MagicNumber = 101090;
string ExpertComment = "PriceCross";
bool LimitPairs = true;
bool LimitFrame = true;
int TimeFrame = 60;
string LP[] = {"EURUSD", "USDCHF", "GBPUSD", "USDJPY"}; // 添加/删除你想限制的paris。
bool Optimize = true;
int NumberOfTries = 5;
//+------------------------------------------------------------------
int init()
{
返回(0)。
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------
bool isNewSymbol(string current_symbol)
{
//循环所有打开的订单并比较符号
int total = OrdersTotal();
for(int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。
string selected_symbol = OrderSymbol();
如果(current_symbol == selected_symbol && OrderMagicNumber()==MagicNumber)
返回(False)。
}
返回(True)。
}
//+------------------------------------------------------------------+
int start()
{
int cnt, ticket, total,n;
双重趋势。
if(Bars<100) {Print("bar less than 100"); return(0);}
如果(LimitFrame)
{
if(Period()!=TimeFrame) {Print("This EA is not working with this TimeFrame!"); return(0); }
}
如果(LimitPairs)
{
if(AllowedPair(Symbol()) == false) {Print("This EA is not working with this Currency!"); return(0);}
}
trend = iMA(NULL,0,MaPeriod,0,MaMode,PRICE_CLOSE,CurrentBar) 。
//--- 交易条件
bool BuyCondition = false , SellCondition = false , CloseBuyCondition = false , CloseSellCondition = false 。
如果(Open[1]趋势)
BuyCondition = true。
如果(Open[1]>trend && Close[1]<trend)
SellCondition = true。
如果(Open[1]>trend && Close[1]<trend)
CloseBuyCondition = true。
如果(Open[1]趋势)
CloseSellCondition = true。
total = OrdersTotal();
如果(total < 1 || isNewSymbol(Symbol()))
{
如果(BuyCondition) //<-- 买入条件
{
ticket = OpenOrder(OP_BUY); //<-- 打开BUY订单
CheckError(ticket, "BUY");
for(n=0; n< Size; n++)
{
ticket = OpenPendingOrder(OP_BUYSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration) 。
}
返回(0)。
}
if(SellCondition) //<--卖出条件
{
ticket = OpenOrder(OP_SELL); //<--打开卖出订单
CheckError(ticket, "SELL");
for(n=0; n < Size; n++)
{
ticket = OpenPendingOrder(OP_SELLSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration) 。
}
返回(0)。
}
return(0);
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。
如果(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
如果(OrderType()==OP_BUY) //<-- 多头仓位被打开
{
如果(UseClose)
{
if(CloseBuyCondition) //<-- 关闭订单并退出!
{
CloseOrder(OrderType()); return(0);
}
}
TrailOrder(OrderType()); return(0); //<--追踪订单
}
if(OrderType()==OP_SELL) //<-- 进入空头状态
{
如果(UseClose)
{
if(CloseSellCondition) //<-- 关闭订单并退出!
{
CloseOrder(OP_SELL); return(0);
}
}
TrailOrder(OrderType()); return(0); //<--追踪订单
}
}
}
return(0);
}
//+------------------------------------------------------------------+
....
你好。
有没有办法让我们知道一个订单已经关闭?
图例是这样的。
我开了2个挂单。
打开#182买入限额0.17 EURUSD在1.3005 sl: 1.2970 tp: 1.3013
打开#183买入限额0.17 EURUSD在1.3000 sl: 1.2968 tp: 1.3011
然后
订单#182,买入0.17欧元兑美元在1.3005处开仓
在1.3013(1.3013/1.3015)处获利#182
我想在订单#182关闭后删除订单#183。触发条件是如果订单#182关闭,那么订单#183将被删除。
欢呼声