如何编码? - 页 163 1...156157158159160161162163164165166167168169170...347 新评论 Orionis 2009.02.27 20:39 #1621 iCCI问题 我是MQL4的新手,正试图获得以前的CCI值。我已经尝试使用iCCI函数,其移位值为1,但它并没有给我以前的值。如果不把当前值保存到一个变量中,我如何做到这一点呢?我试图确定CCI的发展方向。 谢谢你的帮助。 KennyRogers 2009.02.27 21:08 #1622 这段代码是基于tick的,所以如果当时没有tick,那么代码就会错过时间检查。我认为,如果没有某种持续运行的循环,你不可能让它精确到秒。 coach3131 2009.02.28 23:02 #1623 关于EA编辑的帮助 我想弄清楚这个问题......请你帮忙。 MB交易 - 股票期权期货外汇在线折扣交易 我改变了这一点。 OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slipage,tp, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor)。 return(0); 到。 int ticket = OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slipage,0,0, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor); Sleep(1500); OrderModify(ticket,OrderOpenPrice() ,sl,tp,0,ArrowsColor)。 =================================== ====== 我得到了这些错误。 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1:OrderModify函数的无效票据 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderSend error 131 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify error 4051 ===================== How to code? ~~~~~~~~HELP・HELP・HELP for MQL4~~~~~~~~~~~~~~~~ ~~~~~~~~HELP・HELP・HELP for MQL4~~~~~~~~~~~~~~~~ cockeyedcowboy 2009.03.01 15:42 #1624 coach3131: 我正在试图弄清楚这个问题......请你帮助一下?MB交易 - 股票期权期货外汇在线折扣交易 我改变了这一点。 OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slipage,tp, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor)。 return(0); 到。 int ticket = OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slipage,0,0, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor); Sleep(1500); OrderModify(ticket,OrderOpenPrice() ,sl,tp,0,ArrowsColor)。 =================================== ====== 我得到了这些错误。 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1:OrderModify函数的无效票据 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderSend error 131 2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify error 4051 ===================== 你的问题是在你的订单发送状态中的手数(体积),因为错误而返回-1。你必须纠正批号变量mylotsi,使其包含一个可接受的值。其次,你应该在调用ordermodify例程之前检查ticket变量的返回值,看它是否包含一个错误标志。 凯特 Sam 2009.03.05 21:20 #1625 EA最大仓位 有没有人可以为这个EA增加最大仓位 还是让它只运行一个头寸? 谢谢 附加的文件: reversal_ea_mt4_eur_jpy_works_fine.mq4 6 kb Roger09 2009.03.06 20:51 #1626 你最好使用 MathAbs(NormalizeDouble(Bid,4)-NormalizeDouble(pivot,4))<Delta*Point, 其中Delta=2...5 MiniMe 2009.03.07 13:02 #1627 jdun: 谁能告诉我停损和止损的代码。我需要把它添加到这个EA中。 这个隐藏的SL和TP int TakeProfit=20; // 20 pips take profit int StopLoss =40; // 40 pips stoploss int Slippage = 3; int MagicNumber=1; int i; int start(){ //----- exit @ TP if((ScanTrades()>=1)&& (ProfitInPips()>=TakeProfit)){ //----- This part will close all open orders and delete pending trades for(i = OrdersTotal()-1; i >=0; i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber ) { if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Plum); if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Plum); if (OrderType() == OP_SELLLIMIT) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYLIMIT) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYSTOP) OrderDelete(OrderTicket()); if (OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket()); } } } //------exit @ SL if((ScanTrades()>=1)&& (ProfitInPips()<= -StopLoss)){ //----- This part will close all open orders and delete pending trades for(i = OrdersTotal()-1; i >=0; i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber ) { if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Plum); if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Plum); if (OrderType() == OP_SELLLIMIT) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYLIMIT) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYSTOP) OrderDelete(OrderTicket()); if (OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket()); } } } return (0); } //----------- Call functions int ScanTrades() { int Tot = OrdersTotal(); int Numb = 0; for(int cnt=0; cnt<=Tot-1; cnt++) { OrderSelect(cnt, SELECT_BY_POS); if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) Numb++; } return(Numb); } double ProfitInPips() { RefreshRates(); double Prof=0; int i; int totalOrders=OrdersTotal(); for(i=0;i<totalOrders;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()==MagicNumber) { if(OrderType()==0) { Prof+=(MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT); } if(OrderType()==1) { Prof+=(OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT); } } } return(Prof); } How to code? 10点3.mq4 [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 MiniMe 2009.03.07 13:07 #1628 假设我有一些买入和卖出的 订单 我想做的是: - 在比未平仓交易的平衡价格高5个点时退出所有的 "篮子 "交易 我在第一个for循环中试图做的是找到未平仓交易+交换的价值,并将其转换为点数,而这正是我陷入困境的部分。 我已经尝试了一些想法,但我已经走到了死胡同,我知道问题出在第一个for语句中,但我无法解决它,希望得到任何帮助。 SymbolPL = 0; OrdLots = 0; Equity = 0; MinPro = 5; for(i = 0; i < OrdersTotal(); i++) {OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {if(OrderType() == OP_BUY) OrdLots += OrderLots(); if(OrderType() == OP_SELL) OrdLots -= OrderLots(); Equity += OrderProfit() + OrderSwap(); } } MinPro= MathRound (MathAbs(Equity /OrdLots)+MinPro); //--- Count the open trades int i; int count=0; for(i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()==MagicNumber && OrderType()<2) { count++; } } //--- find the profit in pips of the open trades RefreshRates(); double profits=0,openPrice=0,points=0; string sym=""; int i; int totalOrders=OrdersTotal(); for(i=0;i<totalOrders;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()==MagicNumber) { sym=OrderSymbol(); openPrice=OrderOpenPrice(); if(OrderType()==0) { profits+=(MarketInfo(sym,MODE_BID)-openPrice)/MarketInfo(sym,MODE_POINT); } if(OrderType()==1) { profits+=(OrderOpenPrice()-MarketInfo(sym,MODE_ASK))/MarketInfo(sym,MODE_POINT); } } } //--- Close when the open trades are 5 pips more than the breakeven price if (count>1 && profits>MinPro ) { for(i = OrdersTotal()-1; i >=0; i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber ) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Plum); } } } How to code? 问吧! 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 ralphronnquist 2009.03.07 20:28 #1629 我认为你可以使用一个 "每手股票 "的常数,其计算方法是:。 double equity_per_lotpoint = MarketInfo( Symbol(), MODE_TICKVALUE ) / MarketInfo( Symbol(), MODE_TICKSIZE ); [/PHP] and then you'd have what you need after the first loop, with: [PHP]if ( Equity > 5 * equity_per_lotpoint * MathAbs( OrdLots ) ) { ... MiniMe 2009.03.07 21:02 #1630 谢谢你,但我将会错过掉期,我想把掉期的利润/亏损包括在订单的关闭决定中。 1...156157158159160161162163164165166167168169170...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
iCCI问题
我是MQL4的新手,正试图获得以前的CCI值。我已经尝试使用iCCI函数,其移位值为1,但它并没有给我以前的值。如果不把当前值保存到一个变量中,我如何做到这一点呢?我试图确定CCI的发展方向。
谢谢你的帮助。
这段代码是基于tick的,所以如果当时没有tick,那么代码就会错过时间检查。我认为,如果没有某种持续运行的循环,你不可能让它精确到秒。
关于EA编辑的帮助
我想弄清楚这个问题......请你帮忙。
MB交易 - 股票期权期货外汇在线折扣交易
我改变了这一点。
OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slipage,tp, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor)。
return(0);
到。
int ticket = OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slipage,0,0, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor);
Sleep(1500);
OrderModify(ticket,OrderOpenPrice() ,sl,tp,0,ArrowsColor)。
=================================== ======
我得到了这些错误。
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1:OrderModify函数的无效票据
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderSend error 131
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify error 4051
=====================
我正在试图弄清楚这个问题......请你帮助一下?
MB交易 - 股票期权期货外汇在线折扣交易
我改变了这一点。
OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slipage,tp, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor)。
return(0);
到。
int ticket = OrderSend(Symbol(),OP_SELL,mylotsi, SellPrice,slipage,0,0, "MyMEFx EA "+MagicNumber,MagicNumber,0,Arrow sColor);
Sleep(1500);
OrderModify(ticket,OrderOpenPrice() ,sl,tp,0,ArrowsColor)。
=================================== ======
我得到了这些错误。
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1:OrderModify函数的无效票据
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderSend error 131
2009.02.28 17:32:59 2009.01.01 20:42 EATest AUDJPY,H1: OrderModify error 4051
=====================你的问题是在你的订单发送状态中的手数(体积),因为错误而返回-1。你必须纠正批号变量mylotsi,使其包含一个可接受的值。其次,你应该在调用ordermodify例程之前检查ticket变量的返回值,看它是否包含一个错误标志。
凯特
EA最大仓位
有没有人可以为这个EA增加最大仓位
还是让它只运行一个头寸?
谢谢
你最好使用
MathAbs(NormalizeDouble(Bid,4)-NormalizeDouble(pivot,4))<Delta*Point,
其中Delta=2...5
谁能告诉我停损和止损的代码。我需要把它添加到这个EA中。
这个隐藏的SL和TP
int TakeProfit=20; // 20 pips take profit
int StopLoss =40; // 40 pips stoploss
int Slippage = 3;
int MagicNumber=1;
int i;
int start(){
//----- exit @ TP
if((ScanTrades()>=1)&& (ProfitInPips()>=TakeProfit)){
//----- This part will close all open orders and delete pending trades
for(i = OrdersTotal()-1; i >=0; i--)
{ OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber )
{
if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Plum);
if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Plum);
if (OrderType() == OP_SELLLIMIT) OrderDelete(OrderTicket());
if (OrderType() == OP_BUYLIMIT) OrderDelete(OrderTicket());
if (OrderType() == OP_BUYSTOP) OrderDelete(OrderTicket());
if (OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket());
}
}
}
//------exit @ SL
if((ScanTrades()>=1)&& (ProfitInPips()<= -StopLoss)){
//----- This part will close all open orders and delete pending trades
for(i = OrdersTotal()-1; i >=0; i--)
{ OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber )
{
if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Plum);
if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Plum);
if (OrderType() == OP_SELLLIMIT) OrderDelete(OrderTicket());
if (OrderType() == OP_BUYLIMIT) OrderDelete(OrderTicket());
if (OrderType() == OP_BUYSTOP) OrderDelete(OrderTicket());
if (OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket());
}
}
}
return (0);
}
//----------- Call functions
int ScanTrades()
{
int Tot = OrdersTotal();
int Numb = 0;
for(int cnt=0; cnt<=Tot-1; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) Numb++;
}
return(Numb);
}
double ProfitInPips()
{
RefreshRates();
double Prof=0;
int i;
int totalOrders=OrdersTotal();
for(i=0;i<totalOrders;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()==MagicNumber)
{
if(OrderType()==0)
{
Prof+=(MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT);
}
if(OrderType()==1)
{
Prof+=(OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT);
}
}
}
return(Prof);
}
假设我有一些买入和卖出的 订单
我想做的是:
- 在比未平仓交易的平衡价格高5个点时退出所有的 "篮子 "交易
我在第一个for循环中试图做的是找到未平仓交易+交换的价值,并将其转换为点数,而这正是我陷入困境的部分。
我已经尝试了一些想法,但我已经走到了死胡同,我知道问题出在第一个for语句中,但我无法解决它,希望得到任何帮助。
SymbolPL = 0;
OrdLots = 0;
Equity = 0;
MinPro = 5;
for(i = 0; i < OrdersTotal(); i++)
{OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{if(OrderType() == OP_BUY) OrdLots += OrderLots();
if(OrderType() == OP_SELL) OrdLots -= OrderLots();
Equity += OrderProfit() + OrderSwap();
}
}
MinPro= MathRound (MathAbs(Equity /OrdLots)+MinPro);
//--- Count the open trades
int i;
int count=0;
for(i=0;i<OrdersTotal();i++)
{ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()==MagicNumber && OrderType()<2)
{ count++;
}
}
//--- find the profit in pips of the open trades
RefreshRates();
double profits=0,openPrice=0,points=0;
string sym="";
int i;
int totalOrders=OrdersTotal();
for(i=0;i<totalOrders;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()==MagicNumber)
{
sym=OrderSymbol();
openPrice=OrderOpenPrice();
if(OrderType()==0)
{
profits+=(MarketInfo(sym,MODE_BID)-openPrice)/MarketInfo(sym,MODE_POINT);
}
if(OrderType()==1)
{
profits+=(OrderOpenPrice()-MarketInfo(sym,MODE_ASK))/MarketInfo(sym,MODE_POINT);
}
}
}
//--- Close when the open trades are 5 pips more than the breakeven price
if (count>1 && profits>MinPro )
{
for(i = OrdersTotal()-1; i >=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber )
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Plum);
}
}
}
我认为你可以使用一个 "每手股票 "的常数,其计算方法是:。
[/PHP]
and then you'd have what you need after the first loop, with:
[PHP]if ( Equity > 5 * equity_per_lotpoint * MathAbs( OrdLots ) ) { ...
谢谢你,但我将会错过掉期,我想把掉期的利润/亏损包括在订单的关闭决定中。