任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 89 1...828384858687888990919293949596...1178 新评论 Рустам 2013.08.26 08:48 #881 Omm: 如何确定期货的日间交易时间? MarketInfo(Symbol(),MODE_STARTING) MarketInfo(Symbol(),MODE_EXPIRATION) 返回零 哪位经纪人? 因此,首先,你应该向你的经纪人查询。 Mikhail Kozhemyako 2013.08.26 09:17 #882 alexey1979621: 尊敬的论坛成员,如何在您的专家顾问中写出价格越过通道线的条件,例如,价格从上方越过通道线,交易被打开或关闭?请注意,我对这个交叉的时刻感兴趣。我很高兴能提供帮助。 double price0=NormalizeDouble(ObjectGetValueByShift("NameYourChannelLine", 0),Digits));- 你在第0条的线的价值。 double price1=NormalizeDouble(ObjectGetValueByShift("NameYourChannelLine", 1),Digits));- 你的线在第1条的价值。 而最简单的方法是确定零点柱的击穿时刻:如果(High[0]>price0 && High[1]<=price1){线已经向上突破},如果(Low[0]<price0 && Low[1]>=price1){线已经向下突破}。从突破的那一刻起,ifs将为 "真",直到当前柱子结束。你的通道行最好有OBJPROP_RAY==True 属性。 Artyom Trishkin 2013.08.26 09:34 #883 alexey1979621: 尊敬的论坛成员,如何在EA中为穿越通道线设置条件,例如,如果价格从上方穿越通道线,并开启或关闭交易?请注意,我对这个交叉的时刻感兴趣。我很高兴能提供帮助。 有几种方法。 如果问价>通道线,并且低点[1]<=通道线,则向上交叉。 如果买入价<通道线,且高点[1]>=通道线,则向下交叉。 你可以用第1期向MA查询 webip 2013.08.26 10:10 #884 我怎样才能在软件中选择最后一个关闭的 订单,并从中获取信息? Alexey Semenov 2013.08.26 10:24 #885 谢谢您的帮助.我一定是把问题说错了,我应该附上部分代码的。我站在正确的立场上。 正如 所建议的那样 artmedia70 表示,要关闭的十字路口如下。根据截图,它完成了交易。但我们需要在十字架的地方完成交易 空白的CheckForClose() { 双重PriceHigh, PriceLow。 //----,只为新酒吧的第一笔交易而去。 如果(Volume[0]>1)返回。 PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0); PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0); for(int i=0;i<OrdersTotal();i++) { 如果(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 如果(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) 继续。 //---- 检查订单类型 如果(OrderType()==OP_BUY) { 如果(Low[1]<=PriceHigh && Ask>=PriceHigh ) OrderClose(OrderTicket(),OrderLots(),Bid,3,White); 突破。 } 如果(OrderType()==OP_SELL) { 如果(High[1]>=PriceLow && Bid<=PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); 突破。 } } //---- } Any rookie question, so [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 编码帮助 Alexey Semenov 2013.08.26 10:37 #886 Mikhail Kozhemyako 2013.08.26 10:38 #887 webip: 如何在软件中选择最后一个关闭的 订单并从中获取信息? 你可以找到任何你喜欢的东西。 Artyom Trishkin 2013.08.26 10:42 #888 alexey1979621: 谢谢您的帮助.我一定是把问题说错了,我应该附上部分代码的。我站在正确的立场上。 正如 所建议的那样 artmedia70 表示,要关闭的十字路口如下。根据截图,该交易正在结束。但我们需要在十字架的地方完成交易 空白的CheckForClose() { 双重PriceHigh, PriceLow。 //----,只为新酒吧的第一笔交易而去。 如果(Volume[0]>1)返回。 PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0); PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0)。 for(int i=0;i<OrdersTotal();i++) { 如果(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 如果(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) 继续。 //---- 检查订单类型 如果(OrderType()==OP_BUY) { 如果(Low[1]<=PriceHigh && Ask>=PriceHigh ) OrderClose(OrderTicket(),OrderLots(),Bid,3,White); 突破。 } 如果(OrderType()==OP_SELL) { 如果(High[1]>=PriceLow && Bid<=PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); 突破。 } } //---- } 极端TMA--逆天的透支。这是一大段历史--过去的30个小节,如果不是更多的话。我用它写了一个专家顾问 - 它很糟糕。想象一下:一个信号出现了,你输入了它,一段时间后,这个信号不再出现在历史上--指标被重新绘制了,结果你白白地进入市场。 你在确定交叉点时犯了一个错误:如果(Low[1]<=PriceHigh && Ask>=PriceHigh ) ...你应该写 if(Low[1]<=PriceHigh && Ask>PriceHigh ) ...而对于反面的类比。 在你的信息输入窗口顶部的面板上插入带有SRC 按钮的代码。 ZZZY 那么,带有十字架的截图在哪里? Alexey Semenov 2013.08.26 10:57 #889 artmedia70:ExtremeTMA - 他们是不折不扣的透支。还有一大段历史--过去的30条,甚至更多。我用它写了一个专家顾问 - 它很糟糕。想象一下:我得到了一个信号,输入了它,一段时间后,信号在历史上不存在了--指标做了太多的重绘,结果是我白白地进入了市场。你在确定交叉点时犯了一个错误:如果(Low[1]<=PriceHigh && Ask>=PriceHigh ) ...你应该写 if(Low[1]<=PriceHigh && Ask>PriceHigh ) ...而对于反面的类比。SZY 应该按文本输入窗口顶部面板上的SRC 按钮来粘贴代码。已更正,关闭交易的方式与上面的截图相同,应该是红叉的位置。 我同意ExtremeTMA重绘,但我想这并不影响寻找入口点,这里主要是过滤器。我使用了TDI指标。我附上了我做的东西(我的手艺不好,所以这个 EA要好好处理)。我只有一个问题,在测试器中,1年大约需要5个小时(我在某个地方犯了一个错误)。如果寻找错误并不困难。 extern double Lots = 0.1; extern string Сomment = "TMA Canal2"; extern int TakeProfit = 20; //тейкпрофит (отрицательное число или ноль чтобы не использовать); extern int StopLoss = 20; // уровень Stop Loss для покупки; extern int Slippage = 2; // проскальзывание extern int Magic = 124; extern string Indi = "ExtremeTMALine"; extern string TimeFrame = "current time frame"; extern int HalfLength = 56; extern int Price = PRICE_CLOSE; extern double ATRMultiplier = 2.0; extern int ATRPeriod = 100; extern bool Interpolate = true; extern double TrendThreshold = 0.5; extern bool Distances = false; extern string Indicatora = "TradersDynamicIndex"; extern int RSI_Period = 13; //8-25 extern int RSI_Price = MODE_CLOSE; //0-6 extern int Volatility_Band = 34; //20-40 extern int RSI_Price_Line = 2; extern int RSI_Price_Type = MODE_SMA; //0-3 extern int Trade_Signal_Line = 7; extern int Trade_Signal_Type = MODE_SMA; //0-3 extern bool UseAlerts = false; double PriceHigh, PriceLow, SL, TP, TDIHigh, TDILow, RSIPriceLine, TradeSignalLine; int ticket; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { if (Digits ==3 || Digits ==3) // для пятизначного брокера { TakeProfit *= 10; StopLoss *= 10; Slippage *= 10; } return(0); } //+------------------------------------------------------------------+ //| Calculate open positions | //+------------------------------------------------------------------+ int CalculateCurrentOrders(string symbol) { int buys=0,sells=0; //---- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() && OrderMagicNumber()==124) { if(OrderType()==OP_BUY) buys++; if(OrderType()==OP_SELL) sells++; } } //---- return orders volume if(buys>0) return(buys); else return(-sells); } //+------------------------------------------------------------------+ //| Check for open order conditions | //+------------------------------------------------------------------+ void CheckForOpen() { double PriceHigh, PriceLow, TDIHigh, TDILow, RSIPriceLine, TradeSignalLine; int ticket; //---- go trading only for first tiks of new bar if(Volume[0]>1) return; PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0); PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0); TDIHigh = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 1, 0); // голубая TDILow = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 3, 0); // голубая RSIPriceLine = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 4, 0); // зеленая TradeSignalLine = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 5, 0); // красная if(Open[1]>PriceHigh || Close[1]>PriceHigh || High[1]>PriceHigh && Ask<=PriceHigh || Ask>=PriceHigh && TDIHigh > 68 && RSIPriceLine < TradeSignalLine) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"TMA Canal2",124,0,Red); return; } //---- buy conditions if(Open[1]<PriceLow || Close[1]<PriceLow || Low[1]<PriceLow && Bid>=PriceLow || Bid<=PriceLow && TDILow < 32 && RSIPriceLine > TradeSignalLine) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"TMA Canal2",124,0,Blue); return; } //---- } //+------------------------------------------------------------------+ //| Check for close order conditions | //+------------------------------------------------------------------+ void CheckForClose() { double PriceHigh, PriceLow; //---- go trading only for first tiks of new bar if(Volume[0]>1) return; PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0); PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0); for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) continue; //---- check order type if(OrderType()==OP_BUY) { if(Low[1]<=PriceHigh && Ask>PriceHigh) OrderClose(OrderTicket(),OrderLots(),Bid,3,White); break; } if(OrderType()==OP_SELL) { if(High[1]>=PriceLow && Bid<PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); break; } } //---- } //+------------------------------------------------------------------+ //| Start function | //+------------------------------------------------------------------+ void start() { //---- check for history and trading if(Bars<100 || IsTradeAllowed()==false) return; //---- calculate open orders by current symbol if(CalculateCurrentOrders(Symbol())==0) CheckForOpen(); else CheckForClose(); //---- } Artyom Trishkin 2013.08.26 11:14 #890 alexey1979621: 纠正了,关闭交易的方式与上面的截图相同,但红叉的位置应该是。 我同意ExtremeTMA是过度的,但我想这并不影响寻找进入点,这里主要的是过滤器。我使用了TDI指标。我附上了提示(我的手不直,专家顾问项目就像我的手)。我只有一个问题,在测试器中,1年大约需要5个小时(我在某个地方犯了一个错误)。如果寻找错误并不困难。 还没有找过错误--有很多事情要做。 为了关闭红叉所在的Sell,你需要在当前条形图上检查。如果Ask<=close level &&High[1]>close level 1...828384858687888990919293949596...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如何确定期货的日间交易时间?
MarketInfo(Symbol(),MODE_STARTING)
MarketInfo(Symbol(),MODE_EXPIRATION)
返回零
哪位经纪人?
因此,首先,你应该向你的经纪人查询。
尊敬的论坛成员,如何在您的专家顾问中写出价格越过通道线的条件,例如,价格从上方越过通道线,交易被打开或关闭?请注意,我对这个交叉的时刻感兴趣。我很高兴能提供帮助。
double price0=NormalizeDouble(ObjectGetValueByShift("NameYourChannelLine", 0),Digits));- 你在第0条的线的价值。
double price1=NormalizeDouble(ObjectGetValueByShift("NameYourChannelLine", 1),Digits));- 你的线在第1条的价值。
而最简单的方法是确定零点柱的击穿时刻:如果(High[0]>price0 && High[1]<=price1){线已经向上突破},如果(Low[0]<price0 && Low[1]>=price1){线已经向下突破}。从突破的那一刻起,ifs将为 "真",直到当前柱子结束。你的通道行最好有OBJPROP_RAY==True 属性。
尊敬的论坛成员,如何在EA中为穿越通道线设置条件,例如,如果价格从上方穿越通道线,并开启或关闭交易?请注意,我对这个交叉的时刻感兴趣。我很高兴能提供帮助。
有几种方法。
如果问价>通道线,并且低点[1]<=通道线,则向上交叉。
如果买入价<通道线,且高点[1]>=通道线,则向下交叉。
你可以用第1期向MA查询
.我一定是把问题说错了,我应该附上部分代码的。我站在正确的立场上。
正如
所建议的那样
artmedia70 表示,要关闭的十字路口如下。根据截图,它完成了交易。但我们需要在十字架的地方完成交易
空白的CheckForClose()
{
双重PriceHigh, PriceLow。
//----,只为新酒吧的第一笔交易而去。
如果(Volume[0]>1)返回。
PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0);
PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0);
for(int i=0;i<OrdersTotal();i++)
{
如果(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
如果(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) 继续。
//---- 检查订单类型
如果(OrderType()==OP_BUY)
{
如果(Low[1]<=PriceHigh && Ask>=PriceHigh ) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
突破。
}
如果(OrderType()==OP_SELL)
{
如果(High[1]>=PriceLow && Bid<=PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
突破。
}
}
//----
}
如何在软件中选择最后一个关闭的 订单并从中获取信息?
你可以找到任何你喜欢的东西。
谢谢您的帮助
.我一定是把问题说错了,我应该附上部分代码的。我站在正确的立场上。
正如
所建议的那样
artmedia70 表示,要关闭的十字路口如下。根据截图,该交易正在结束。但我们需要在十字架的地方完成交易
空白的CheckForClose()
{
双重PriceHigh, PriceLow。
//----,只为新酒吧的第一笔交易而去。
如果(Volume[0]>1)返回。
PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0);
PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0)。
for(int i=0;i<OrdersTotal();i++)
{
如果(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
如果(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) 继续。
//---- 检查订单类型
如果(OrderType()==OP_BUY)
{
如果(Low[1]<=PriceHigh && Ask>=PriceHigh ) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
突破。
}
如果(OrderType()==OP_SELL)
{
如果(High[1]>=PriceLow && Bid<=PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
突破。
}
}
//----
}
极端TMA--逆天的透支。这是一大段历史--过去的30个小节,如果不是更多的话。我用它写了一个专家顾问 - 它很糟糕。想象一下:一个信号出现了,你输入了它,一段时间后,这个信号不再出现在历史上--指标被重新绘制了,结果你白白地进入市场。
你在确定交叉点时犯了一个错误:如果(Low[1]<=PriceHigh && Ask>=PriceHigh ) ...你应该写 if(Low[1]<=PriceHigh && Ask>PriceHigh ) ...而对于反面的类比。
在你的信息输入窗口顶部的面板上插入带有SRC 按钮的代码。
ZZZY 那么,带有十字架的截图在哪里?
ExtremeTMA - 他们是不折不扣的透支。还有一大段历史--过去的30条,甚至更多。我用它写了一个专家顾问 - 它很糟糕。想象一下:我得到了一个信号,输入了它,一段时间后,信号在历史上不存在了--指标做了太多的重绘,结果是我白白地进入了市场。
你在确定交叉点时犯了一个错误:如果(Low[1]<=PriceHigh && Ask>=PriceHigh ) ...你应该写 if(Low[1]<=PriceHigh && Ask>PriceHigh ) ...而对于反面的类比。
SZY 应该按文本输入窗口顶部面板上的SRC 按钮来粘贴代码。
已更正,关闭交易的方式与上面的截图相同,应该是红叉的位置。
我同意ExtremeTMA重绘,但我想这并不影响寻找入口点,这里主要是过滤器。我使用了TDI指标。我附上了我做的东西(我的手艺不好,所以这个 EA要好好处理)。我只有一个问题,在测试器中,1年大约需要5个小时(我在某个地方犯了一个错误)。如果寻找错误并不困难。
纠正了,关闭交易的方式与上面的截图相同,但红叉的位置应该是。
我同意ExtremeTMA是过度的,但我想这并不影响寻找进入点,这里主要的是过滤器。我使用了TDI指标。我附上了提示(我的手不直,专家顾问项目就像我的手)。我只有一个问题,在测试器中,1年大约需要5个小时(我在某个地方犯了一个错误)。如果寻找错误并不困难。
还没有找过错误--有很多事情要做。
为了关闭红叉所在的Sell,你需要在当前条形图上检查。如果Ask<=close level &&High[1]>close level