[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 356 1...349350351352353354355356357358359360361362363...432 新评论 Garifyanov 2013.05.23 19:51 #3551 另一个问题,如何在MT4上添加指标?谢谢 Artyom Trishkin 2013.05.24 01:34 #3552 Garifyanov:另一个问题,如何在MT4上添加指标?谢谢 文档 和教程 没有帮助吗? Garifyanov 2013.05.24 02:16 #3553 artmedia70:文件 和教科书 没有帮助吗? 谢谢,我现在就去检查。 [删除] 2013.05.24 05:55 #3554 你好,我找不到一个能在已知时间蜡烛的高点、低点上画两天的水平线 的指标。请给我一个链接,或者是一个指标的概要。 Pr0t0ip 2013.05.24 08:26 #3555 你能告诉我为什么EA不交易了吗?把它放在演示上(微笑)--它不起作用。似乎已经删除了开始时只允许在测试时交易的功能。外来的双倍Lots=1.0。外部int Begin=10;外部 inttern 长度=4。外置 int EOD=24;外部inttern Pips=5。外来的int StopLoss=50。外置 int BreakEven=30;外部的TakeProfit=80。//+------------------------------------------------------------------+//|专家启动功能|//+------------------------------------------------------------------+int start(){//----int i,Ticket,LastOrderTime,StartTime,EODTime,Bought=0, Sold=0;Double EntryLong,EntryShort,SLLong,SLShort,TPLong,TPShort。//设置如果(Symbol()=="EURUSD"){开始=10。长度=4。EOD=24。点数=5。StopLoss=50。盈亏平衡=30。TakeProfit=80。}否则,如果(Symbol()=="GBPUSD"){开始=10。长度=4。EOD=24。点数=5。StopLoss=70。盈亏平衡=40。TakeProfit=120。}否则 {开始=10。长度=4。EOD=24。点数=5。StopLoss=50。盈亏平衡=30。TakeProfit=80。}//计算时间如果(Hour()>=Begin-1){StartTime= StrToTime(Begin+":00")。if(DayOfWeek()==5) EODTime = MathMin(StrToTime("22:55"),StrToTime(EOD+":00")) 。否则EODTime = StartTime+(EOD-Begin)*3600-60。}//设置订单如果(CurTime()>= StartTime && CurTime()<StartTime+300){//确定范围EntryLong =High[Highest(NULL,0,MODE_HIGH,Length*60/Period(),0)]+(Pips+MarketInfo(Symbol(),MODE_SPREAD) )*Point;EntryShort =Low [Lowest (NULL,0,MODE_LOW, Length*60/Period(),0)] -Pips*Point;SLLong =MathMax(EntryLong-StopLoss*Point,EntryShort)。SLShort =MathMin(EntryShort+StopLoss*Point,EntryLong)。TPLong =EntryLong+TakeProfit*Point;TPShort =EntryShort-TakeProfit*Point;//检查订单for (i=0;i<OrdersTotal();i++){OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。如果(OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType() ==OP_BUY))买了++。if(Bought>1){ //多于1个买入订单如果(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);如果(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red) 。如果(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket() 。}如果(OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELL))成交++。if(Sold>1){ //多于1个卖单如果(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);如果(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red) 。如果(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket() )。}}如果(Bought==0){ //没有买入订单如果(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,EntryLong,3,SLLong,TPLong,NULL,0,0,Green) 。如果(Ticket<0 && GetLastError()==130)Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SLLong,TPLong,NULL,0,0,Green) 。GlobalVariableSet("LastOrderTime",OrderOpenTime())}if(Sold==0){ //没有卖出指令如果(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);Ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,EntryShort,3,SLShort,TPShort,NULL,0,0,Green) 。如果(Ticket<0 && GetLastError()==130)Ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SLShort,TPShort,NULL,0,0,Green);GlobalVariableSet("LastOrderTime",OrderOpenTime())}}//管理已开启的订单for (i=0;i<OrdersTotal();i++){OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。如果(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);//uzavšenín pozic na konci dne如果(CurTime()>=EODTime){如果(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red) 。如果(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red) 。如果(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket() )。如果(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket() )。GlobalVariableSet("LastOrderTime",CurTime())。}如果利润>BE,//在BE处移动否则 {如果(OrderSymbol()==Symbol() && OrderType()==OP_BUY){如果(High[0]-OrderOpenPrice()>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice()){OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Green) 。GlobalVariableSet("LastOrderTime",CurTime())。}}如果(OrderSymbol()==Symbol() && OrderType()==OP_SELL){如果(OrderOpenPrice()-Low[0]>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice()){OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Green) 。GlobalVariableSet("LastOrderTime",CurTime())。}}}}/在EOD时重置全局变量如果(CurTime()>=EODTime) GlobalVariablesDeleteAll()。return(0);}//+------------------------------------------------------------------+ [ARCHIVE]Any rookie question, so Strategy tester only from I've searched but couldn't [Deleted] 2013.05.24 11:15 #3556 大家好,我安装了MT4 FIFTYZNAK,iMA指标给出了4位数字,但如何获得5位数字? 请帮助我理解。 Artyom Trishkin 2013.05.24 11:37 #3557 MK07: 大家好,我安装了MT4 FIFTY-ZNAK,iMA指标给出了4个信号,但如何获得5个信号? 请帮助理解。 它有一个五位数的值。要看到 它的价值,请使用string DoubleToStr(double value,int digits) 将一个数字值转换为一个文本字符串,其中包含一个指定精度格式的数字的字符表示。 参数。value-浮点 值。 digits- 小数点后的位数(0-8)。例子。 string value=DoubleToStr(1.28473418, 5); // содержимое строки value - "1.28473" Boris 2013.05.24 16:10 #3558 laveosa: 罗马...很高兴见到你。试了一下,不起作用,不明白哪里出了问题,目测有上述时期的历史记录,但测试时却没有?:/ 按F2键下载,直到你失去知觉为止!;)) forexman77 2013.05.24 17:24 #3559 你如何向程序表明条形图已经触及移动平均线? 你不需要一个最大值或最小值,你需要显示一个触摸。 TarasBY 2013.05.24 17:41 #3560 Forexman77: 你如何向程序表明条形图已经触及移动平均线? 你不需要一个最大值或最小值,你需要显示一个触摸。 最高(当前)High[0]在MA之上,因此最低(当前)Low[0]在MA之下(据我所知,我们谈论的是第0条)。 1...349350351352353354355356357358359360361362363...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
另一个问题,如何在MT4上添加指标?
谢谢
另一个问题,如何在MT4上添加指标?
谢谢
文件 和教科书 没有帮助吗?
谢谢,我现在就去检查。
你能告诉我为什么EA不交易了吗?把它放在演示上(微笑)--它不起作用。似乎已经删除了开始时只允许在测试时交易的功能。
外来的双倍Lots=1.0。
外部int Begin=10;
外部 inttern 长度=4。
外置 int EOD=24;
外部inttern Pips=5。
外来的int StopLoss=50。
外置 int BreakEven=30;
外部的TakeProfit=80。
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
//----
int i,Ticket,LastOrderTime,StartTime,EODTime,Bought=0, Sold=0;
Double EntryLong,EntryShort,SLLong,SLShort,TPLong,TPShort。
//设置
如果(Symbol()=="EURUSD"){
开始=10。
长度=4。
EOD=24。
点数=5。
StopLoss=50。
盈亏平衡=30。
TakeProfit=80。
}
否则,如果(Symbol()=="GBPUSD"){
开始=10。
长度=4。
EOD=24。
点数=5。
StopLoss=70。
盈亏平衡=40。
TakeProfit=120。
}
否则 {
开始=10。
长度=4。
EOD=24。
点数=5。
StopLoss=50。
盈亏平衡=30。
TakeProfit=80。
}
//计算时间
如果(Hour()>=Begin-1)
{
StartTime= StrToTime(Begin+":00")。
if(DayOfWeek()==5) EODTime = MathMin(StrToTime("22:55"),StrToTime(EOD+":00")) 。
否则EODTime = StartTime+(EOD-Begin)*3600-60。
}
//设置订单
如果(CurTime()>= StartTime && CurTime()<StartTime+300){
//确定范围
EntryLong =High[Highest(NULL,0,MODE_HIGH,Length*60/Period(),0)]+(Pips+MarketInfo(Symbol(),MODE_SPREAD) )*Point;
EntryShort =Low [Lowest (NULL,0,MODE_LOW, Length*60/Period(),0)] -Pips*Point;
SLLong =MathMax(EntryLong-StopLoss*Point,EntryShort)。
SLShort =MathMin(EntryShort+StopLoss*Point,EntryLong)。
TPLong =EntryLong+TakeProfit*Point;
TPShort =EntryShort-TakeProfit*Point;
//检查订单
for (i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。
如果(OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType() ==OP_BUY))买了++。
if(Bought>1){ //多于1个买入订单
如果(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);
如果(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red) 。
如果(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket() 。
}
如果(OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELL))成交++。
if(Sold>1){ //多于1个卖单
如果(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);
如果(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red) 。
如果(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket() )。
}
}
如果(Bought==0){ //没有买入订单
如果(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);
Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,EntryLong,3,SLLong,TPLong,NULL,0,0,Green) 。
如果(Ticket<0 && GetLastError()==130)
Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SLLong,TPLong,NULL,0,0,Green) 。
GlobalVariableSet("LastOrderTime",OrderOpenTime())
}
if(Sold==0){ //没有卖出指令
如果(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);
Ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,EntryShort,3,SLShort,TPShort,NULL,0,0,Green) 。
如果(Ticket<0 && GetLastError()==130)
Ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SLShort,TPShort,NULL,0,0,Green);
GlobalVariableSet("LastOrderTime",OrderOpenTime())
}
}
//管理已开启的订单
for (i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。
如果(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);
//uzavšenín pozic na konci dne
如果(CurTime()>=EODTime){
如果(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red) 。
如果(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red) 。
如果(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket() )。
如果(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket() )。
GlobalVariableSet("LastOrderTime",CurTime())。
}
如果利润>BE,//在BE处移动
否则 {
如果(OrderSymbol()==Symbol() && OrderType()==OP_BUY){
如果(High[0]-OrderOpenPrice()>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice()){
OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Green) 。
GlobalVariableSet("LastOrderTime",CurTime())。
}
}
如果(OrderSymbol()==Symbol() && OrderType()==OP_SELL){
如果(OrderOpenPrice()-Low[0]>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice()){
OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Green) 。
GlobalVariableSet("LastOrderTime",CurTime())。
}
}
}
}
/在EOD时重置全局变量
如果(CurTime()>=EODTime) GlobalVariablesDeleteAll()。
return(0);
}
//+------------------------------------------------------------------+
大家好,我安装了MT4 FIFTY-ZNAK,iMA指标给出了4个信号,但如何获得5个信号? 请帮助理解。
它有一个五位数的值。要看到 它的价值,请使用
string DoubleToStr(double value,int digits)
将一个数字值转换为一个文本字符串,其中包含一个指定精度格式的数字的字符表示。参数。
value-浮点 值。
digits- 小数点后的位数(0-8)。
罗马...很高兴见到你。试了一下,不起作用,不明白哪里出了问题,目测有上述时期的历史记录,但测试时却没有?:/
你如何向程序表明条形图已经触及移动平均线? 你不需要一个最大值或最小值,你需要显示一个触摸。
你如何向程序表明条形图已经触及移动平均线? 你不需要一个最大值或最小值,你需要显示一个触摸。