如何编码? - 页 154 1...147148149150151152153154155156157158159160161...347 新评论 codobro 2009.01.13 23:43 #1531 菊花西。 你可能想自己测试一下最佳坐标。 FerruFX和CJA已经使用了最好的解决方案,即用用户输入的对象放置默认的角落位置。 你也可以看看OBJPROP_CORNER。 另外,请尽量不要发布和你一样的请求。 用户看到你的帖子,如果有人能帮助你,他们会的。 谢谢你 编辑:使用角属性 0是左上角,1是右上角,2左下角,3右下角。 它是0的计数。 [删除] 2009.01.14 04:26 #1532 帮助调试我的EA 嗨,如果这是个错误的论坛,请原谅,如果是,请修正。 我编制了自己的EA,在订单填充 和止损订单方面有一些问题。 谁能帮帮我?我可以分享这个EA。 谢谢 Kikousi 2009.01.14 05:31 #1533 codobro。 非常感谢您的善意回答。 从现在起,我不会再发同样的问题了。 我很感谢你的建议。 在这方面,我理解左上角的位置是(0,0),那么当时右下角的指示是什么? 例如,当左上角位置是(0,0)时,我可以用(250,350)来表示右下角吗? 感谢你对上述问题的理解。 Niller 2009.01.16 09:42 #1534 指标图未显示所有数据 你好 我对C语言编程相当熟练,但开始使用MQL4。 我刚刚做了我的第一个指标,它在单独的窗口中部分地显示了一个数组。 我所说的部分显示是指如果你向左滚动,那么在一些时间段内什么都不显示,如果我再向左滚动,那么就会显示一些时间段的数据,等等。 如果你向右滚动,那么同样的时间段就不会显示。 否则我看不到任何模式。 此外,如果我从1分钟内看到一些数据,转到5分钟内,则根本没有显示。 为什么没有显示所有的数据?我可能错过了什么? [删除] 2009.01.17 10:02 #1535 好的EA - 需要帮助 海。 在这个伟大的论坛上,有没有人可以修改这个EA而不设任何止损。 谢谢 //---- 输入参数 ---------------------------------------------+ Extern int INCREMENT=35; extern double LOTS=0.1; Extern int LEVELS=3; extern double MAX_LOTS=99; Extern int MAGIC=1803; extern bool CONTINUE=true; extern bool MONEY_MANAGEMENT=false; extern int RISK_RATIO=2; //+------------------------------------------------------------------+ bool UseProfitTarget=false; bool UsePartialProfitTarget=false; int Target_Increment = 50; int First_Target = 20; bool UseEntryTime=false; int EntryTime=0; //+------------------------------------------------------------------+ bool Enter=true。 int nextTP; int init() { //+------------------------------------------------------------------+ nextTP = First_Target; //+------------------------------------------------------------------+ return(0); } //+------------------------------------------------------------------+ //| 专家去初始化功能| //+------------------------------------------------------------------+ int deinit() { return(0)。 } //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ int start() { int ticket, cpt, profit, total=0, BuyGoalProfit, SellGoalProfit, PipsLot; double ProfitTarget=INCREMENT*2, BuyGoal=0, SellGoal=0, spread=(Ask-Bid)/Point, InitialPrice=0; //---- if(INCREMENT<MarketInfo(Symbol(),MODE_STOPLEVEL)+spread) INCREMENT=1+MarketInfo(Symbol(),MODE_STOPLEVEL)+spread; if(MONEY_MANAGEMENT) LOTS=NormalizeDouble(AccountBalance()*AccountLeverage()/1000000*RISK_RATIO,0)*MarketInfo(Symbol(),MODE_MINLOT); 如果(LOTS<MarketInfo(Symbol(),MODE_MINLOT)) { Comment("没有足够的自由保证金开始")。 return(0); } for(cpt=1;cpt<LEVELS;cpt++) PipsLot+=cpt*INCREMENT; for(cpt=0;cpt<OrdersTotal();cpt++) { OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES)。 如果(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol()) { 总计++。 if(!InitialPrice) InitialPrice=StrToDouble(OrderComment())。 如果(UsePartialProfitTarget && UseProfitTarget && OrderType()<2) { double val=getPipValue(OrderOpenPrice(),OrderType())。 takeProfit(val,OrderTicket())。 } } } 如果(total<1 && Enter && (!UseEntryTime || (UseEntryTime && Hour()==EntryTime)) { 如果(AccountFreeMargin()<(100*LOTS)) { Print("没有足够的自由保证金来开始")。 return(0); } // - 打开检查 - 开始循环 InitialPrice=Ask; SellGoal=InitialPric-(LEVELS+1)*INCREMENT*Point; BuyGoal=InitialPrice+(LEVELS+1)*INCREMENT*Point; for(cpt=1;cpt<=LEVELS;cpt++) { OrderSend(Symbol(),OP_BUYSTOP,LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)) ,MAGIC,0)。 OrderSend(Symbol(),OP_SELLSTOP,LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),ModE_DIGITS)),MAGIC,0)。 } }// 初始设置完成 - 所有通道都已设置好 否则 // 我们有开放订单 { BuyGoal=InitialPrice+INCREMENT*(LEVELS+1)*Point; SellGoal=InitialPric-INCREMENT*(LEVELS+1)*Point; total=OrdersHistoryTotal()。 for(cpt=0;cpt<total;cpt++) { OrderSelect(cpt,SELECT_BY_POS,MODE_HISTORY)。 如果(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && StrToDouble(OrderComment())==InitialPrice){EndSession(); return(0);} } 如果(UseProfitTarget && CheckProfits(LOTS,OP_SELL,true,InitialPrice)>ProfitTarget) {EndSession();return(0); } BuyGoalProfit=CheckProfits(LOTS,OP_BUY,false,InitialPrice)。 SellGoalProfit=CheckProfits(LOTS,OP_SELL,false,InitialPrice)。 如果(BuyGoalProfit<ProfitTarget) // - 损友买入 { for(cpt=LEVELS;cpt>=1 && BuyGoalProfit<ProfitTarget;cpt--) { 如果(Ask<=(InitialPrice+(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point)) { ticket=OrderSend(Symbol(),OP_BUYSTOP,cpt*LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0) 。 } 如果(ticket>0) BuyGoalProfit+=LOTS*(BuyGoal-InitialPrice-cpt*INCREMENT*Point)/Point。 } } 如果(SellGoalProfit<ProfitTarget) // - 递增卖出手数 { for(cpt=LEVELS;cpt>=1 && SellGoalProfit<ProfitTarget;cpt-) { if(Bid>=(InitialPric-(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point)) { ticket=OrderSend(Symbol(),OP_SELLSTOP,cpt*LOTS,InitialPric-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)) ,MAGIC,0)。 } 如果(ticket>0) SellGoalProfit+=LOTS*(InitialPrice-cpt*INCREMENT*Point-SellGoal-spread*Point)/Point。 } } } //+------------------------------------------------------------------+ Comment("mGRID EXPERT ADVISOR ver 2.0\n", "FX Acc Server:",AccountServer(),"\n", "Date: ",Month(),"-",Day(),"-",Year()," Server Time: ",Hour(),":",Minute(),":",Seconds(), "n", "Minimum Lot Sizing: ",MarketInfo(Symbol(),MODE_MINLOT),"/n", "账户余额:$",AccountBalance(),"/n", "符号。", Symbol(),"/n", "价格。 ",NormalizeDouble(Bid,4), "n", "点差。 ",MarketInfo("EURUSD",MODE_SPREAD),"/n"。 "Increment=" + INCREMENT,"/n", "手数。 ",LOTS,"/n", "级别。" + LEVELS,"/n")。 返回(0)。 } //+------------------------------------------------------------------+ int CheckProfits(double LOTS, int Goal, bool Current, double InitialPrice) { int profit=0, cpt; 如果(Current)//返回当前利润 { for(cpt=0;cpt<OrdersTotal();cpt++) { OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。 如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice) { if(OrderType()==OP_BUY) profit+=(Bid-OrderOpenPrice())/Point*OrderLots()/LOTS; if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-Ask)/Point*OrderLots()/LOTS; } } return(profit); } 否则 { 如果(目标==OP_BUY) { for(cpt=0;cpt<OrdersTotal();cpt++) { OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。 如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice) { 如果(OrderType()==OP_BUY) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS; if(OrderType()==OP_SELL) profit-=(OrderStopLoss()-OrderOpenPrice())/Point*OrderLots()/LOTS; 如果(OrderType()==OP_BUYSTOP) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS; } } return(profit); } 否则 { for(cpt=0;cpt<OrdersTotal();cpt++) { OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。 如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice) { if(OrderType()==OP_BUY) profit-=(OrderOpenPrice()-OrderStopLoss())/Point*OrderLots()/LOTS; if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS; if(OrderType()==OP_SELLSTOP) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS; } } return(profit); } } } bool EndSession() { int cpt, total=OrdersTotal(); for(cpt=0;cpt<total;cpt++) { Sleep(3000); OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES)。 如果(OrderSymbol()==Symbol() && OrderType()>1) OrderDelete(OrderTicket())。 否则,如果(OrderSymbol()==Symbol() && OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(), Bid,3)。 否则如果(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3)。 } if(!CONTINUE) Enter=false; return(true); } 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; 返回(val)。 } //========== FUNCTION takeProfit void takeProfit(int current_pips, int ticket) { 如果(OrderSelect(ticket, SELECT_BY_TICKET)) { 如果(current_pips >= nextTP && current_pips < (nextTP + Target_Increment)) { 如果(OrderType()==1) { 如果(OrderClose(ticket, MAX_LOTS, Ask, 3)) nextTP+=Target_Increment; 否则 Print("错误关闭订单:",GetLastError())。 } 否则 { 如果(OrderClose(ticket, MAX_LOTS, Bid, 3)) nextTP+=Target_Increment。 否则 Print("错误关闭订单:",GetLastError())。 } } } } How to code? 哪个函数可以算出,已平仓的订单的 赢利点数,与赢利金额? 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. pghiaci 2009.01.17 10:53 #1536 hkstar98: 海。在这个伟大的论坛上,有没有人可以修改这个EA而不设任何止损。 谢谢 //---- 输入参数 ---------------------------------------------+ Extern int INCREMENT=35; extern double LOTS=0.1; Extern int LEVELS=3; extern double MAX_LOTS=99; Extern int MAGIC=1803; extern bool CONTINUE=true; extern bool MONEY_MANAGEMENT=false; extern int RISK_RATIO=2; //+------------------------------------------------------------------+ bool UseProfitTarget=false; bool UsePartialProfitTarget=false; int Target_Increment = 50; int First_Target = 20; bool UseEntryTime=false; int EntryTime=0; //+------------------------------------------------------------------+ bool Enter=true。 int nextTP; int init() { //+------------------------------------------------------------------+ nextTP = First_Target; //+------------------------------------------------------------------+ return(0); } //+------------------------------------------------------------------+ //| 专家去初始化功能| //+------------------------------------------------------------------+ int deinit() { return(0)。 } //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ int start() { int ticket, cpt, profit, total=0, BuyGoalProfit, SellGoalProfit, PipsLot; double ProfitTarget=INCREMENT*2, BuyGoal=0, SellGoal=0, spread=(Ask-Bid)/Point, InitialPrice=0; //---- if(INCREMENT<MarketInfo(Symbol(),MODE_STOPLEVEL)+spread) INCREMENT=1+MarketInfo(Symbol(),MODE_STOPLEVEL)+spread; if(MONEY_MANAGEMENT) LOTS=NormalizeDouble(AccountBalance()*AccountLeverage()/1000000*RISK_RATIO,0)*MarketInfo(Symbol(),MODE_MINLOT); 如果(LOTS<MarketInfo(Symbol(),MODE_MINLOT)) { Comment("没有足够的自由保证金开始")。 return(0); } for(cpt=1;cpt<LEVELS;cpt++) PipsLot+=cpt*INCREMENT; for(cpt=0;cpt<OrdersTotal();cpt++) { OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES)。 如果(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol()) { 总计++。 if(!InitialPrice) InitialPrice=StrToDouble(OrderComment())。 如果(UsePartialProfitTarget && UseProfitTarget && OrderType()<2) { double val=getPipValue(OrderOpenPrice(),OrderType())。 takeProfit(val,OrderTicket())。 } } } 如果(total<1 && Enter && (!UseEntryTime || (UseEntryTime && Hour()==EntryTime)) { 如果(AccountFreeMargin()<(100*LOTS)) { Print("没有足够的自由保证金来开始")。 return(0); } // - 打开检查 - 开始循环 InitialPrice=Ask; SellGoal=InitialPric-(LEVELS+1)*INCREMENT*Point; BuyGoal=InitialPrice+(LEVELS+1)*INCREMENT*Point; for(cpt=1;cpt<=LEVELS;cpt++) { OrderSend(Symbol(),OP_BUYSTOP,LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)) ,MAGIC,0)。 OrderSend(Symbol(),OP_SELLSTOP,LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),ModE_DIGITS)),MAGIC,0)。 } }// 初始设置完成 - 所有通道都已设置好 否则 // 我们有开放订单 { BuyGoal=InitialPrice+INCREMENT*(LEVELS+1)*Point; SellGoal=InitialPric-INCREMENT*(LEVELS+1)*Point; total=OrdersHistoryTotal()。 for(cpt=0;cpt<total;cpt++) { OrderSelect(cpt,SELECT_BY_POS,MODE_HISTORY)。 如果(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && StrToDouble(OrderComment())==InitialPrice){EndSession(); return(0);} } 如果(UseProfitTarget && CheckProfits(LOTS,OP_SELL,true,InitialPrice)>ProfitTarget) {EndSession();return(0); } BuyGoalProfit=CheckProfits(LOTS,OP_BUY,false,InitialPrice)。 SellGoalProfit=CheckProfits(LOTS,OP_SELL,false,InitialPrice)。 如果(BuyGoalProfit<ProfitTarget) // - 损友买入 { for(cpt=LEVELS;cpt>=1 && BuyGoalProfit<ProfitTarget;cpt--) { 如果(Ask<=(InitialPrice+(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point)) { ticket=OrderSend(Symbol(),OP_BUYSTOP,cpt*LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0) 。 } 如果(ticket>0) BuyGoalProfit+=LOTS*(BuyGoal-InitialPrice-cpt*INCREMENT*Point)/Point。 } } 如果(SellGoalProfit<ProfitTarget) // - 递增卖出手数 { for(cpt=LEVELS;cpt>=1 && SellGoalProfit<ProfitTarget;cpt-) { if(Bid>=(InitialPric-(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point)) { ticket=OrderSend(Symbol(),OP_SELLSTOP,cpt*LOTS,InitialPric-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)) ,MAGIC,0)。 } 如果(ticket>0) SellGoalProfit+=LOTS*(InitialPrice-cpt*INCREMENT*Point-SellGoal-spread*Point)/Point。 } } } //+------------------------------------------------------------------+ Comment("mGRID EXPERT ADVISOR ver 2.0\n", "FX Acc Server:",AccountServer(),"\n", "Date: ",Month(),"-",Day(),"-",Year()," Server Time: ",Hour(),":",Minute(),":",Seconds(), "n", "Minimum Lot Sizing: ",MarketInfo(Symbol(),MODE_MINLOT),"/n", "账户余额:$",AccountBalance(),"/n", "符号。", Symbol(),"/n", "价格。 ",NormalizeDouble(Bid,4), "n", "点差。 ",MarketInfo("EURUSD",MODE_SPREAD),"/n"。 "Increment=" + INCREMENT,"/n", "手数。 ",LOTS,"/n", "级别。" + LEVELS,"/n")。 返回(0)。 } //+------------------------------------------------------------------+ int CheckProfits(double LOTS, int Goal, bool Current, double InitialPrice) { int profit=0, cpt; if(Current)//返回当前利润 { for(cpt=0;cpt<OrdersTotal();cpt++) { OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。 如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice) { if(OrderType()==OP_BUY) profit+=(Bid-OrderOpenPrice())/Point*OrderLots()/LOTS; if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-Ask)/Point*OrderLots()/LOTS; } } return(profit); } 否则 { 如果(目标==OP_BUY) { for(cpt=0;cpt<OrdersTotal();cpt++) { OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。 如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice) { 如果(OrderType()==OP_BUY) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS; if(OrderType()==OP_SELL) profit-=(OrderStopLoss()-OrderOpenPrice())/Point*OrderLots()/LOTS; 如果(OrderType()==OP_BUYSTOP) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS; } } return(profit); } 否则 { for(cpt=0;cpt<OrdersTotal();cpt++) { OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。 如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice) { if(OrderType()==OP_BUY) profit-=(OrderOpenPrice()-OrderStopLoss())/Point*OrderLots()/LOTS; if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS; if(OrderType()==OP_SELLSTOP) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS; } } return(profit); } } } bool EndSession() { int cpt, total=OrdersTotal(); for(cpt=0;cpt<total;cpt++) { Sleep(3000); OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES)。 如果(OrderSymbol()==Symbol() && OrderType()>1) OrderDelete(OrderTicket())。 否则,如果(OrderSymbol()==Symbol() && OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(), Bid,3)。 否则如果(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3)。 } if(!CONTINUE) Enter=false; return(true); } 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; 返回(val)。 } //========== FUNCTION takeProfit void takeProfit(int current_pips, int ticket) { 如果(OrderSelect(ticket, SELECT_BY_TICKET)) { 如果(current_pips >= nextTP && current_pips < (nextTP + Target_Increment)) { 如果(OrderType()==1) { 如果(OrderClose(ticket, MAX_LOTS, Ask, 3)) nextTP+=Target_Increment; 否则 Print("错误关闭订单:",GetLastError())。 } 否则 { 如果(OrderClose(ticket, MAX_LOTS, Bid, 3)) nextTP+=Target_Increment。 否则 Print("错误关闭订单:",GetLastError())。 } } } } 嗨 给你 附加的文件: new.mq4 8 kb [删除] 2009.01.18 00:22 #1537 codersguru: jdun,SL和TP的代码已经写在这个EA中。 请看这几行。 if (Symbol()=="GBPUSD") { PipsForEntry= 13; TrailingStop = 40; TakeProfit = 45; InitialStopLoss=33; } else if (Symbol()=="EURUSD") { PipsForEntry= 13; TrailingStop = 30; TakeProfit = 45; InitialStopLoss=23; } else if (Symbol()=="USDCHF") { PipsForEntry= 13; TrailingStop = 30; TakeProfit = 45; InitialStopLoss=15; } else { PipsForEntry= 13; TrailingStop = 30; TakeProfit = 45; InitialStopLoss=30; } [/PHP] If you want to make SL & TP external variables which you can set, you have to comment the above lines of code and uncomment these lines: [PHP]/* extern int PipsForEntry= 5; extern double TrailingStop = 40; extern double TakeProfit = 120; extern double InitialStopLoss=50; */ mcmalach 2009.01.18 02:03 #1538 每个信号的最大交易量 有谁知道我可以用什么来限制每个信号的交易数量(我希望每个信号有一个交易,但我得到的是8个,最后一个总是失败的)。 [删除] 2009.01.18 06:41 #1539 帮助 海。 仍然有止损 pghiaci: 你好,在这里你可以 garhardt 2009.01.20 19:55 #1540 有多个自定义时间的EA? 我意识到可以用多种时间框架来制作EA,但能否用自定义时间来编写EA? 我有一个带MTF的EA,但我需要的是自定义时间,而不是默认时间,所以它们并不经常 "排队"。 问候 1...147148149150151152153154155156157158159160161...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
菊花西。
你可能想自己测试一下最佳坐标。 FerruFX和CJA已经使用了最好的解决方案,即用用户输入的对象放置默认的角落位置。 你也可以看看OBJPROP_CORNER。
另外,请尽量不要发布和你一样的请求。 用户看到你的帖子,如果有人能帮助你,他们会的。
谢谢你
编辑:使用角属性 0是左上角,1是右上角,2左下角,3右下角。 它是0的计数。
帮助调试我的EA
嗨,如果这是个错误的论坛,请原谅,如果是,请修正。
我编制了自己的EA,在订单填充 和止损订单方面有一些问题。 谁能帮帮我?我可以分享这个EA。
谢谢
codobro。
非常感谢您的善意回答。
从现在起,我不会再发同样的问题了。
我很感谢你的建议。
在这方面,我理解左上角的位置是(0,0),那么当时右下角的指示是什么?
例如,当左上角位置是(0,0)时,我可以用(250,350)来表示右下角吗?
感谢你对上述问题的理解。
指标图未显示所有数据
你好
我对C语言编程相当熟练,但开始使用MQL4。
我刚刚做了我的第一个指标,它在单独的窗口中部分地显示了一个数组。
我所说的部分显示是指如果你向左滚动,那么在一些时间段内什么都不显示,如果我再向左滚动,那么就会显示一些时间段的数据,等等。
如果你向右滚动,那么同样的时间段就不会显示。
否则我看不到任何模式。
此外,如果我从1分钟内看到一些数据,转到5分钟内,则根本没有显示。
为什么没有显示所有的数据?我可能错过了什么?
好的EA - 需要帮助
海。
在这个伟大的论坛上,有没有人可以修改这个EA而不设任何止损。
谢谢
//---- 输入参数 ---------------------------------------------+
Extern int INCREMENT=35;
extern double LOTS=0.1;
Extern int LEVELS=3;
extern double MAX_LOTS=99;
Extern int MAGIC=1803;
extern bool CONTINUE=true;
extern bool MONEY_MANAGEMENT=false;
extern int RISK_RATIO=2;
//+------------------------------------------------------------------+
bool UseProfitTarget=false;
bool UsePartialProfitTarget=false;
int Target_Increment = 50;
int First_Target = 20;
bool UseEntryTime=false;
int EntryTime=0;
//+------------------------------------------------------------------+
bool Enter=true。
int nextTP;
int init()
{
//+------------------------------------------------------------------+
nextTP = First_Target;
//+------------------------------------------------------------------+
return(0);
}
//+------------------------------------------------------------------+
//| 专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
return(0)。
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
int ticket, cpt, profit, total=0, BuyGoalProfit, SellGoalProfit, PipsLot;
double ProfitTarget=INCREMENT*2, BuyGoal=0, SellGoal=0, spread=(Ask-Bid)/Point, InitialPrice=0;
//----
if(INCREMENT<MarketInfo(Symbol(),MODE_STOPLEVEL)+spread) INCREMENT=1+MarketInfo(Symbol(),MODE_STOPLEVEL)+spread;
if(MONEY_MANAGEMENT) LOTS=NormalizeDouble(AccountBalance()*AccountLeverage()/1000000*RISK_RATIO,0)*MarketInfo(Symbol(),MODE_MINLOT);
如果(LOTS<MarketInfo(Symbol(),MODE_MINLOT))
{
Comment("没有足够的自由保证金开始")。
return(0);
}
for(cpt=1;cpt<LEVELS;cpt++) PipsLot+=cpt*INCREMENT;
for(cpt=0;cpt<OrdersTotal();cpt++)
{
OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES)。
如果(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol())
{
总计++。
if(!InitialPrice) InitialPrice=StrToDouble(OrderComment())。
如果(UsePartialProfitTarget && UseProfitTarget && OrderType()<2)
{
double val=getPipValue(OrderOpenPrice(),OrderType())。
takeProfit(val,OrderTicket())。
}
}
}
如果(total<1 && Enter && (!UseEntryTime || (UseEntryTime && Hour()==EntryTime))
{
如果(AccountFreeMargin()<(100*LOTS))
{
Print("没有足够的自由保证金来开始")。
return(0);
}
// - 打开检查 - 开始循环
InitialPrice=Ask;
SellGoal=InitialPric-(LEVELS+1)*INCREMENT*Point;
BuyGoal=InitialPrice+(LEVELS+1)*INCREMENT*Point;
for(cpt=1;cpt<=LEVELS;cpt++)
{
OrderSend(Symbol(),OP_BUYSTOP,LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)) ,MAGIC,0)。
OrderSend(Symbol(),OP_SELLSTOP,LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),ModE_DIGITS)),MAGIC,0)。
}
}// 初始设置完成 - 所有通道都已设置好
否则 // 我们有开放订单
{
BuyGoal=InitialPrice+INCREMENT*(LEVELS+1)*Point;
SellGoal=InitialPric-INCREMENT*(LEVELS+1)*Point;
total=OrdersHistoryTotal()。
for(cpt=0;cpt<total;cpt++)
{
OrderSelect(cpt,SELECT_BY_POS,MODE_HISTORY)。
如果(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && StrToDouble(OrderComment())==InitialPrice){EndSession(); return(0);}
}
如果(UseProfitTarget && CheckProfits(LOTS,OP_SELL,true,InitialPrice)>ProfitTarget) {EndSession();return(0); }
BuyGoalProfit=CheckProfits(LOTS,OP_BUY,false,InitialPrice)。
SellGoalProfit=CheckProfits(LOTS,OP_SELL,false,InitialPrice)。
如果(BuyGoalProfit<ProfitTarget)
// - 损友买入
{
for(cpt=LEVELS;cpt>=1 && BuyGoalProfit<ProfitTarget;cpt--)
{
如果(Ask<=(InitialPrice+(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,cpt*LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0) 。
}
如果(ticket>0) BuyGoalProfit+=LOTS*(BuyGoal-InitialPrice-cpt*INCREMENT*Point)/Point。
}
}
如果(SellGoalProfit<ProfitTarget)
// - 递增卖出手数
{
for(cpt=LEVELS;cpt>=1 && SellGoalProfit<ProfitTarget;cpt-)
{
if(Bid>=(InitialPric-(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))
{
ticket=OrderSend(Symbol(),OP_SELLSTOP,cpt*LOTS,InitialPric-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)) ,MAGIC,0)。
}
如果(ticket>0) SellGoalProfit+=LOTS*(InitialPrice-cpt*INCREMENT*Point-SellGoal-spread*Point)/Point。
}
}
}
//+------------------------------------------------------------------+
Comment("mGRID EXPERT ADVISOR ver 2.0\n",
"FX Acc Server:",AccountServer(),"\n",
"Date: ",Month(),"-",Day(),"-",Year()," Server Time: ",Hour(),":",Minute(),":",Seconds(), "n",
"Minimum Lot Sizing: ",MarketInfo(Symbol(),MODE_MINLOT),"/n",
"账户余额:$",AccountBalance(),"/n",
"符号。", Symbol(),"/n",
"价格。 ",NormalizeDouble(Bid,4), "n",
"点差。 ",MarketInfo("EURUSD",MODE_SPREAD),"/n"。
"Increment=" + INCREMENT,"/n",
"手数。 ",LOTS,"/n",
"级别。" + LEVELS,"/n")。
返回(0)。
}
//+------------------------------------------------------------------+
int CheckProfits(double LOTS, int Goal, bool Current, double InitialPrice)
{
int profit=0, cpt;
如果(Current)//返回当前利润
{
for(cpt=0;cpt<OrdersTotal();cpt++)
{
OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。
如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)
{
if(OrderType()==OP_BUY) profit+=(Bid-OrderOpenPrice())/Point*OrderLots()/LOTS;
if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-Ask)/Point*OrderLots()/LOTS;
}
}
return(profit);
}
否则
{
如果(目标==OP_BUY)
{
for(cpt=0;cpt<OrdersTotal();cpt++)
{
OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。
如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)
{
如果(OrderType()==OP_BUY) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;
if(OrderType()==OP_SELL) profit-=(OrderStopLoss()-OrderOpenPrice())/Point*OrderLots()/LOTS;
如果(OrderType()==OP_BUYSTOP) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;
}
}
return(profit);
}
否则
{
for(cpt=0;cpt<OrdersTotal();cpt++)
{
OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。
如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)
{
if(OrderType()==OP_BUY) profit-=(OrderOpenPrice()-OrderStopLoss())/Point*OrderLots()/LOTS;
if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;
if(OrderType()==OP_SELLSTOP) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;
}
}
return(profit);
}
}
}
bool EndSession()
{
int cpt, total=OrdersTotal();
for(cpt=0;cpt<total;cpt++)
{
Sleep(3000);
OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES)。
如果(OrderSymbol()==Symbol() && OrderType()>1) OrderDelete(OrderTicket())。
否则,如果(OrderSymbol()==Symbol() && OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(), Bid,3)。
否则如果(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3)。
}
if(!CONTINUE) Enter=false;
return(true);
}
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;
返回(val)。
}
//========== FUNCTION takeProfit
void takeProfit(int current_pips, int ticket)
{
如果(OrderSelect(ticket, SELECT_BY_TICKET))
{
如果(current_pips >= nextTP && current_pips < (nextTP + Target_Increment))
{
如果(OrderType()==1)
{
如果(OrderClose(ticket, MAX_LOTS, Ask, 3))
nextTP+=Target_Increment;
否则
Print("错误关闭订单:",GetLastError())。
}
否则
{
如果(OrderClose(ticket, MAX_LOTS, Bid, 3))
nextTP+=Target_Increment。
否则
Print("错误关闭订单:",GetLastError())。
}
}
}
}
海。
在这个伟大的论坛上,有没有人可以修改这个EA而不设任何止损。
谢谢
//---- 输入参数 ---------------------------------------------+
Extern int INCREMENT=35;
extern double LOTS=0.1;
Extern int LEVELS=3;
extern double MAX_LOTS=99;
Extern int MAGIC=1803;
extern bool CONTINUE=true;
extern bool MONEY_MANAGEMENT=false;
extern int RISK_RATIO=2;
//+------------------------------------------------------------------+
bool UseProfitTarget=false;
bool UsePartialProfitTarget=false;
int Target_Increment = 50;
int First_Target = 20;
bool UseEntryTime=false;
int EntryTime=0;
//+------------------------------------------------------------------+
bool Enter=true。
int nextTP;
int init()
{
//+------------------------------------------------------------------+
nextTP = First_Target;
//+------------------------------------------------------------------+
return(0);
}
//+------------------------------------------------------------------+
//| 专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
return(0)。
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
int ticket, cpt, profit, total=0, BuyGoalProfit, SellGoalProfit, PipsLot;
double ProfitTarget=INCREMENT*2, BuyGoal=0, SellGoal=0, spread=(Ask-Bid)/Point, InitialPrice=0;
//----
if(INCREMENT<MarketInfo(Symbol(),MODE_STOPLEVEL)+spread) INCREMENT=1+MarketInfo(Symbol(),MODE_STOPLEVEL)+spread;
if(MONEY_MANAGEMENT) LOTS=NormalizeDouble(AccountBalance()*AccountLeverage()/1000000*RISK_RATIO,0)*MarketInfo(Symbol(),MODE_MINLOT);
如果(LOTS<MarketInfo(Symbol(),MODE_MINLOT))
{
Comment("没有足够的自由保证金开始")。
return(0);
}
for(cpt=1;cpt<LEVELS;cpt++) PipsLot+=cpt*INCREMENT;
for(cpt=0;cpt<OrdersTotal();cpt++)
{
OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES)。
如果(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol())
{
总计++。
if(!InitialPrice) InitialPrice=StrToDouble(OrderComment())。
如果(UsePartialProfitTarget && UseProfitTarget && OrderType()<2)
{
double val=getPipValue(OrderOpenPrice(),OrderType())。
takeProfit(val,OrderTicket())。
}
}
}
如果(total<1 && Enter && (!UseEntryTime || (UseEntryTime && Hour()==EntryTime))
{
如果(AccountFreeMargin()<(100*LOTS))
{
Print("没有足够的自由保证金来开始")。
return(0);
}
// - 打开检查 - 开始循环
InitialPrice=Ask;
SellGoal=InitialPric-(LEVELS+1)*INCREMENT*Point;
BuyGoal=InitialPrice+(LEVELS+1)*INCREMENT*Point;
for(cpt=1;cpt<=LEVELS;cpt++)
{
OrderSend(Symbol(),OP_BUYSTOP,LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)) ,MAGIC,0)。
OrderSend(Symbol(),OP_SELLSTOP,LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),ModE_DIGITS)),MAGIC,0)。
}
}// 初始设置完成 - 所有通道都已设置好
否则 // 我们有开放订单
{
BuyGoal=InitialPrice+INCREMENT*(LEVELS+1)*Point;
SellGoal=InitialPric-INCREMENT*(LEVELS+1)*Point;
total=OrdersHistoryTotal()。
for(cpt=0;cpt<total;cpt++)
{
OrderSelect(cpt,SELECT_BY_POS,MODE_HISTORY)。
如果(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && StrToDouble(OrderComment())==InitialPrice){EndSession(); return(0);}
}
如果(UseProfitTarget && CheckProfits(LOTS,OP_SELL,true,InitialPrice)>ProfitTarget) {EndSession();return(0); }
BuyGoalProfit=CheckProfits(LOTS,OP_BUY,false,InitialPrice)。
SellGoalProfit=CheckProfits(LOTS,OP_SELL,false,InitialPrice)。
如果(BuyGoalProfit<ProfitTarget)
// - 损友买入
{
for(cpt=LEVELS;cpt>=1 && BuyGoalProfit<ProfitTarget;cpt--)
{
如果(Ask<=(InitialPrice+(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,cpt*LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0) 。
}
如果(ticket>0) BuyGoalProfit+=LOTS*(BuyGoal-InitialPrice-cpt*INCREMENT*Point)/Point。
}
}
如果(SellGoalProfit<ProfitTarget)
// - 递增卖出手数
{
for(cpt=LEVELS;cpt>=1 && SellGoalProfit<ProfitTarget;cpt-)
{
if(Bid>=(InitialPric-(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))
{
ticket=OrderSend(Symbol(),OP_SELLSTOP,cpt*LOTS,InitialPric-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)) ,MAGIC,0)。
}
如果(ticket>0) SellGoalProfit+=LOTS*(InitialPrice-cpt*INCREMENT*Point-SellGoal-spread*Point)/Point。
}
}
}
//+------------------------------------------------------------------+
Comment("mGRID EXPERT ADVISOR ver 2.0\n",
"FX Acc Server:",AccountServer(),"\n",
"Date: ",Month(),"-",Day(),"-",Year()," Server Time: ",Hour(),":",Minute(),":",Seconds(), "n",
"Minimum Lot Sizing: ",MarketInfo(Symbol(),MODE_MINLOT),"/n",
"账户余额:$",AccountBalance(),"/n",
"符号。", Symbol(),"/n",
"价格。 ",NormalizeDouble(Bid,4), "n",
"点差。 ",MarketInfo("EURUSD",MODE_SPREAD),"/n"。
"Increment=" + INCREMENT,"/n",
"手数。 ",LOTS,"/n",
"级别。" + LEVELS,"/n")。
返回(0)。
}
//+------------------------------------------------------------------+
int CheckProfits(double LOTS, int Goal, bool Current, double InitialPrice)
{
int profit=0, cpt;
if(Current)//返回当前利润
{
for(cpt=0;cpt<OrdersTotal();cpt++)
{
OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。
如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)
{
if(OrderType()==OP_BUY) profit+=(Bid-OrderOpenPrice())/Point*OrderLots()/LOTS;
if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-Ask)/Point*OrderLots()/LOTS;
}
}
return(profit);
}
否则
{
如果(目标==OP_BUY)
{
for(cpt=0;cpt<OrdersTotal();cpt++)
{
OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。
如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)
{
如果(OrderType()==OP_BUY) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;
if(OrderType()==OP_SELL) profit-=(OrderStopLoss()-OrderOpenPrice())/Point*OrderLots()/LOTS;
如果(OrderType()==OP_BUYSTOP) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;
}
}
return(profit);
}
否则
{
for(cpt=0;cpt<OrdersTotal();cpt++)
{
OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES)。
如果(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)
{
if(OrderType()==OP_BUY) profit-=(OrderOpenPrice()-OrderStopLoss())/Point*OrderLots()/LOTS;
if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;
if(OrderType()==OP_SELLSTOP) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;
}
}
return(profit);
}
}
}
bool EndSession()
{
int cpt, total=OrdersTotal();
for(cpt=0;cpt<total;cpt++)
{
Sleep(3000);
OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES)。
如果(OrderSymbol()==Symbol() && OrderType()>1) OrderDelete(OrderTicket())。
否则,如果(OrderSymbol()==Symbol() && OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(), Bid,3)。
否则如果(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3)。
}
if(!CONTINUE) Enter=false;
return(true);
}
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;
返回(val)。
}
//========== FUNCTION takeProfit
void takeProfit(int current_pips, int ticket)
{
如果(OrderSelect(ticket, SELECT_BY_TICKET))
{
如果(current_pips >= nextTP && current_pips < (nextTP + Target_Increment))
{
如果(OrderType()==1)
{
如果(OrderClose(ticket, MAX_LOTS, Ask, 3))
nextTP+=Target_Increment;
否则
Print("错误关闭订单:",GetLastError())。
}
否则
{
如果(OrderClose(ticket, MAX_LOTS, Bid, 3))
nextTP+=Target_Increment。
否则
Print("错误关闭订单:",GetLastError())。
}
}
}
}嗨
给你
jdun,
SL和TP的代码已经写在这个EA中。
请看这几行。
PipsForEntry= 13;
TrailingStop = 40;
TakeProfit = 45;
InitialStopLoss=33;
} else if (Symbol()=="EURUSD") {
PipsForEntry= 13;
TrailingStop = 30;
TakeProfit = 45;
InitialStopLoss=23;
} else if (Symbol()=="USDCHF") {
PipsForEntry= 13;
TrailingStop = 30;
TakeProfit = 45;
InitialStopLoss=15;
} else {
PipsForEntry= 13;
TrailingStop = 30;
TakeProfit = 45;
InitialStopLoss=30;
} [/PHP]
If you want to make SL & TP external variables which you can set, you have to comment the above lines of code and uncomment these lines:
[PHP]/*
extern int PipsForEntry= 5;
extern double TrailingStop = 40;
extern double TakeProfit = 120;
extern double InitialStopLoss=50;
*/每个信号的最大交易量
有谁知道我可以用什么来限制每个信号的交易数量(我希望每个信号有一个交易,但我得到的是8个,最后一个总是失败的)。
帮助
海。
仍然有止损
你好,在这里你可以
有多个自定义时间的EA?
我意识到可以用多种时间框架来制作EA,但能否用自定义时间来编写EA? 我有一个带MTF的EA,但我需要的是自定义时间,而不是默认时间,所以它们并不经常 "排队"。
问候