如何编码? - 页 79 1...727374757677787980818283848586...347 新评论 nittany1 2008.03.24 06:32 #781 很好,谢谢你们,这两个建议可能都比我正在做的要好。 biosq 2008.03.24 19:48 #782 谁能帮帮我.... 你好... 我希望这里有人能帮助我如何编码。这是个马蒂尔角的EA,我想做的是。 1 .如果第3层打开,第1层和第2层的目标点可以移动到第3层的目标点价格,所以我们可以同时关闭。 2.需要锁定点数。当第一层打开,并获得利润,例如15点(TP 32),EA在低价位进行锁定(例如5点),所以当价格逆转10点时,帖子可以自动关闭并获得5点利润。 我很抱歉我的英语不好。希望有人能帮助我在这个EA上输入代码。谢谢你 martiangle_rsi_.mq4 征求意见 真正需要帮助的人 附加的文件: martiangle_rsi_.mq4 15 kb Beno 2008.03.25 19:39 #783 请提供评论帮助 我正试图设置一个评论来显示在屏幕上,但运气不好。 我已经设法获得了单个货币对的点数,但我似乎无法显示多个货币对的合计点数。 任何帮助都将是巨大的 这是该代码的一个例子 //========== FUNCTION getPipValue double getPipValue(double ord,int dir) { double val; RefreshRates()。 如果(dir == 1) val=(NormalizeDouble(ord,Digits) - NormalizeDouble(Ask,Digits))。 否则val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits))。 val = val/Point*co; 返回(val)。 } //==函数结束 int getSpread() { int spread=MarketInfo(Symbol(),MODE_SPREAD); return(spread); } //========== FUNCTION getOpenOrders 空白 getOpenOrders() { int nsl, nsd; 字符串 mngMagic, trailon; int totalorders = OrdersTotal(); for(int j=0; j<totalorders;j++) { OrderSelect(j, SELECT_BY_POS, MODE_TRADES)。 如果((OrderType() == OP_BUY || OrderType() == OP_Sell) && OrderSymbol() == Symbol()&&(MagicNumber==0 ||MagicNumber ==) OrderMagicNumber()) { double val=getPipValue(OrderOpenPrice(),OrderType()) 。 //int val = OrderProfit()/(OrderLots()*10)。 } 如果(MagicNumber == 0) mngMagic = "所有 "+Symbol()+"交易"。 否则 mngMagic = "魔法数字="+魔法数字的交易。 //RefreshRates(); 评论("余额。",AccountBalance(),",Account Equity:",AccountEquity(),", Account Profit:",AccountProfit(), "OrderOpen: ",OrderOpenPrice(), "/nPip Count:", val, "/nMy Account Cutoff Limit: ",Open_Loss_To_CloseTrades, "/nManaging:", mngMagic)。 欢呼声 How to code? 初学者的问题 MQL5 MT5 MetaTrader 问吧! ralphronnquist 2008.03.25 19:55 #784 当前订单的点值可以通过以下方式获得。 ( OrderClosePrice() - OrderOpenPrice() ) / MarketInfo( OrderSymbol(), MODE_POINT ) 如果你想使用 "bid "和 "ask",你也需要使用与订单符号 相关的,即MarketInfo( OrderSymbol(), MODE_BID )和MarketInfo( OrderSymbol(), MODE_ASK )。 Beno 2008.03.25 20:27 #785 拉尔夫-朗奎斯特(Ralph.Ronnquist 纪晓岚 谢谢你的代码,我已经使用了它,但它只计算了一对,而不是所有对的总数。 我一直在试验各种情况,但还是不行。 我有一个开了3个头寸的EA,我在5个货币对上运行,我可以看到每个货币对的点数,但不是集体的。 ShahJB 2008.03.25 22:27 #786 Beno: 拉尔夫-朗奎斯特(Ralph.Ronnquist)纪晓岚 谢谢你的代码,我已经使用了它,但它只计算了一对,而不是所有对的总数。 我一直在试验各种情况,但仍然没有成功。 我有一个EA,在5个货币对上开了3个头寸,我可以看到每个货币对的点数,但看不到集体。 好吧,如果你熟悉全局变量,你可以用它们来存储每个符号所引用的每个货币对的点子信息。创建另一个引用总点数的全局变量,并调用这个特定的全局变量,随着点数的增加而更新,并将其存储。全局变量可以被每个EA访问,因为它被存储在MT4的内存中。 如果需要,我可以帮助你编码。 Beno 2008.03.25 22:39 #787 你好,ShahJB 我以前在代码中见过全局变量,但对它们没有任何经验,所以是的,我想接受你的帮助来编写这个代码,因为它使我发疯。 ShahJB 2008.03.25 23:04 #788 Beno: Gidday ShahJB 我以前在代码中见过全局变量,但对它们的经验是零,所以是的,我想接受你的帮助来编写这个代码,因为它使我发疯。 我刚刚及时编码了以下内容。你为什么不先添加这段代码。试一试,如果失败了就给我打电话。我需要睡一会。 string val_old_string = "val_old" + Symbol(); int val_old = GlobalVariableGet(val_old_string); if(val != val_old) { int pips_increment_decrement; int current_total_pips; string counter = "Pips Counter"; double pips_counter = GlobalVariableGet(counter); 如果(val>val_old) { pips_increment_decrement = val - val_old; current_total_pips = pips_increment_decrement + pips_counter; GlobalVariableSet(counter, current_total_pips); GlobalVariableSet(val_old_string, val); } 否则 { pips_increment_decrement = val_old - val; current_total_pips = pips_counter - pips_increment_decrement; GlobalVariableSet(counter, current_total_pips); GlobalVariableSet(val_old_string, val); } } rlach3 2008.03.31 13:50 #789 为什么不工作? 你好。 我是一个完全陌生的编程新手。 感谢本网站的帖子和学习资源,我鼓起勇气尝试建立几个EA,其中一个将使用Lguerre作为触发器之一(我使用这个网站来帮助我;MetaTrader 4的专家顾问生成器)。我的EA的问题是,当触发器被击中时,它不会打开买单。我已经使用上述网站建立了几个EA,它们可以很好地执行多头和空头订单(这些EA使用RSI)。请看一下所附的EA,3-28,让我知道我做得不对....,我是否使用了错误的格式,在交易执行前要达到的水平?Laguerre需要额外的参数吗? 我在这个问题上花费了大量令人尴尬的时间,我都快放弃了....,非常感谢任何帮助!!!!!。 我似乎已经找到了答案......为什么我需要在我的EA中乘以Laguerre,虽然?????。 附加的文件: 3-31.mq4 10 kb [删除] 2008.03.31 19:45 #790 我遇到了一个平仓问题。请帮助我 我遇到了一个问题,我不知道如何解决。我的程序有一些未平仓的订单,并将它们全部平仓,但有时我认为有些订单没有成交,因此它一直在等待,直到它们成交,这就锁住了我的程序。你们发现关闭所有未结订单的最佳方法是什么?谢谢你们的帮助。 以下是代码。 int OrdersTotalLong() { int order_total = 0; for (int i = 0; i < OrdersTotal(); i++) { OrderSelect(i,SELECT_BY_POS, MODE_TRADES)。 如果(OrderType() == OP_BUY) order_total++; } return(order_total); } int MaxLongOrder() { int order = 0; double lotsbuyed = 0; for (int i = 0; i < OrdersTotal(); i++) { OrderSelect(i,SELECT_BY_POS, MODE_TRADES)。 如果((OrderType() == OP_BUY) && (OrderLots() > lotsbuyed)) { lotsbuyed = OrderLots(); 订单 = i; } } return(order); } int CloseLong() { while (OrdersTotalLong() > 0) //until there's no Orders open (close all) { 如果(OrderSelect(MaxLongOrder(), SELECT_BY_POS, MODE_TRADES) == false) 继续。 OrderClose(OrderTicket(),OrderLots(), Bid, 3, Green)。 } } return(0); } Need help closing orders [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 How to code? 1...727374757677787980818283848586...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
很好,谢谢你们,这两个建议可能都比我正在做的要好。
谁能帮帮我....
你好...
我希望这里有人能帮助我如何编码。这是个马蒂尔角的EA,我想做的是。
1 .如果第3层打开,第1层和第2层的目标点可以移动到第3层的目标点价格,所以我们可以同时关闭。
2.需要锁定点数。当第一层打开,并获得利润,例如15点(TP 32),EA在低价位进行锁定(例如5点),所以当价格逆转10点时,帖子可以自动关闭并获得5点利润。
我很抱歉我的英语不好。希望有人能帮助我在这个EA上输入代码。谢谢你
martiangle_rsi_.mq4
征求意见
真正需要帮助的人
请提供评论帮助
我正试图设置一个评论来显示在屏幕上,但运气不好。
我已经设法获得了单个货币对的点数,但我似乎无法显示多个货币对的合计点数。
任何帮助都将是巨大的
这是该代码的一个例子
//========== FUNCTION getPipValue
double getPipValue(double ord,int dir)
{
double val;
RefreshRates()。
如果(dir == 1) val=(NormalizeDouble(ord,Digits) -
NormalizeDouble(Ask,Digits))。
否则val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits))。
val = val/Point*co;
返回(val)。
}
//==函数结束
int getSpread()
{
int spread=MarketInfo(Symbol(),MODE_SPREAD);
return(spread);
}
//========== FUNCTION getOpenOrders
空白 getOpenOrders()
{
int nsl, nsd;
字符串 mngMagic, trailon;
int totalorders = OrdersTotal();
for(int j=0; j<totalorders;j++)
{
OrderSelect(j, SELECT_BY_POS, MODE_TRADES)。
如果((OrderType() == OP_BUY || OrderType() == OP_Sell) &&
OrderSymbol() == Symbol()&&(MagicNumber==0 ||MagicNumber ==)
OrderMagicNumber())
{
double val=getPipValue(OrderOpenPrice(),OrderType()) 。
//int val = OrderProfit()/(OrderLots()*10)。
}
如果(MagicNumber == 0)
mngMagic = "所有 "+Symbol()+"交易"。
否则
mngMagic = "魔法数字="+魔法数字的交易。
//RefreshRates();
评论("余额。",AccountBalance(),",Account Equity:",AccountEquity(),", Account Profit:",AccountProfit(), "OrderOpen: ",OrderOpenPrice(),
"/nPip Count:", val,
"/nMy Account Cutoff Limit: ",Open_Loss_To_CloseTrades,
"/nManaging:", mngMagic)。
欢呼声
当前订单的点值可以通过以下方式获得。
如果你想使用 "bid "和 "ask",你也需要使用与订单符号 相关的,即MarketInfo( OrderSymbol(), MODE_BID )和MarketInfo( OrderSymbol(), MODE_ASK )。
拉尔夫-朗奎斯特(Ralph.Ronnquist
纪晓岚
谢谢你的代码,我已经使用了它,但它只计算了一对,而不是所有对的总数。
我一直在试验各种情况,但还是不行。
我有一个开了3个头寸的EA,我在5个货币对上运行,我可以看到每个货币对的点数,但不是集体的。
拉尔夫-朗奎斯特(Ralph.Ronnquist)
纪晓岚
谢谢你的代码,我已经使用了它,但它只计算了一对,而不是所有对的总数。
我一直在试验各种情况,但仍然没有成功。
我有一个EA,在5个货币对上开了3个头寸,我可以看到每个货币对的点数,但看不到集体。好吧,如果你熟悉全局变量,你可以用它们来存储每个符号所引用的每个货币对的点子信息。创建另一个引用总点数的全局变量,并调用这个特定的全局变量,随着点数的增加而更新,并将其存储。全局变量可以被每个EA访问,因为它被存储在MT4的内存中。
如果需要,我可以帮助你编码。
你好,ShahJB
我以前在代码中见过全局变量,但对它们没有任何经验,所以是的,我想接受你的帮助来编写这个代码,因为它使我发疯。
Gidday ShahJB 我以前在代码中见过全局变量,但对它们的经验是零,所以是的,我想接受你的帮助来编写这个代码,因为它使我发疯。
我刚刚及时编码了以下内容。你为什么不先添加这段代码。试一试,如果失败了就给我打电话。我需要睡一会。
string val_old_string = "val_old" + Symbol();
int val_old = GlobalVariableGet(val_old_string);
if(val != val_old)
{
int pips_increment_decrement;
int current_total_pips;
string counter = "Pips Counter";
double pips_counter = GlobalVariableGet(counter);
如果(val>val_old)
{
pips_increment_decrement = val - val_old;
current_total_pips = pips_increment_decrement + pips_counter;
GlobalVariableSet(counter, current_total_pips);
GlobalVariableSet(val_old_string, val);
}
否则
{
pips_increment_decrement = val_old - val;
current_total_pips = pips_counter - pips_increment_decrement;
GlobalVariableSet(counter, current_total_pips);
GlobalVariableSet(val_old_string, val);
}
}
为什么不工作?
你好。
我是一个完全陌生的编程新手。 感谢本网站的帖子和学习资源,我鼓起勇气尝试建立几个EA,其中一个将使用Lguerre作为触发器之一(我使用这个网站来帮助我;MetaTrader 4的专家顾问生成器)。我的EA的问题是,当触发器被击中时,它不会打开买单。我已经使用上述网站建立了几个EA,它们可以很好地执行多头和空头订单(这些EA使用RSI)。请看一下所附的EA,3-28,让我知道我做得不对....,我是否使用了错误的格式,在交易执行前要达到的水平?Laguerre需要额外的参数吗?
我在这个问题上花费了大量令人尴尬的时间,我都快放弃了....,非常感谢任何帮助!!!!!。
我似乎已经找到了答案......为什么我需要在我的EA中乘以Laguerre,虽然?????。
我遇到了一个平仓问题。请帮助我
我遇到了一个问题,我不知道如何解决。我的程序有一些未平仓的订单,并将它们全部平仓,但有时我认为有些订单没有成交,因此它一直在等待,直到它们成交,这就锁住了我的程序。你们发现关闭所有未结订单的最佳方法是什么?谢谢你们的帮助。
以下是代码。
int OrdersTotalLong()
{
int order_total = 0;
for (int i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS, MODE_TRADES)。
如果(OrderType() == OP_BUY)
order_total++;
}
return(order_total);
}
int MaxLongOrder()
{
int order = 0;
double lotsbuyed = 0;
for (int i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS, MODE_TRADES)。
如果((OrderType() == OP_BUY) && (OrderLots() > lotsbuyed))
{
lotsbuyed = OrderLots();
订单 = i;
}
}
return(order);
}
int CloseLong()
{
while (OrdersTotalLong() > 0) //until there's no Orders open (close all)
{
如果(OrderSelect(MaxLongOrder(), SELECT_BY_POS, MODE_TRADES) == false) 继续。
OrderClose(OrderTicket(),OrderLots(), Bid, 3, Green)。
}
}
return(0);
}