[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 413 1...406407408409410411412413414415416417418419420...631 新评论 neo777 2012.10.04 14:04 #4121 好的。 是的,新酒吧。 ilunga 2012.10.04 14:08 #4122 Neo777:好的。是的,新酒吧。 https://www.mql5.com/ru/articles/1494,这里有确定新酒吧 是否已经开始的方法。它是如何开始的 - 检查你的条件 [Deleted] 2012.10.04 14:43 #4123 下午好。大家好,请谁来帮助解决WindowScreenShot的功能。第3天,没有人回答()。编写了以下脚本(见附件文件)。 关于剧本的两句话。该脚本用于对客户终端窗口的当前图表进行截图。 在外部变量extern datetime Time_bar 中,指定了从该条开始到零条为止的时间(考虑到图表上的右缩进)。在行 int bar_number=iBarShift(NULL,0,Time_bar,true) 我们在外部变量extern datetime time_bar 中指定的酒吧的序列号被搜索到。该函数本身,在行 bool f=WindowScreenShot(name+".gif",1024,768,bar_number, Scale,View_graph) 现在的问题是...为了简单起见,让我们假设我们需要创建一个最后两根柱子的屏幕截图。然后,如果该行 int bar_number=iBarShift(NULL,0,Time_bar,true) 不做任何改变,结果将是以下截图 就是说,在截图中没有酒吧(尽管字符串 int bar_number=iBarShift(NULL,0,bar_time,true) 应按时间计算条数) 如果这一行以如下方式呈现 int bar_number=iBarShift(NULL,0,Time_bar,true)+2 你会得到我们想要的屏幕截图。 问题:为什么在这个字符串有以下形式的情况下 int bar_number=iBarShift(NULL,0,Time_bar,true) 截图是在上一行指定的右移2条的情况下拍摄的? P.S.为了不在论坛上添乱,提前感谢您的回答。 附加的文件: createscreenshot_2.mq4 7 kb [ARCHIVE!] Any rookie question, 编码帮助 EA at oanda not asasusa 2012.10.04 15:48 #4124 ilunga: 显示代码+指标中的输入参数是什么 我检查了20次,不检查20次我是不会写的,所有的参数都是正确的,和指标中的一样。问题可能出在其他地方,也许你已经遇到了这样的问题? Hatori 2012.10.04 16:15 #4125 同事们!!!晚上好。 我发现了一个惊人的QQE指标,并决定在这个指标的基础上找到一个专家顾问....,但却找不到它。然而,在这个论坛上,我发现了用户POZITIV的一条信息。 他写了以下逻辑:"当红线向上穿过黄线时,应该开一个 买入的订单,当红线向上穿过黄线时--一个 卖出的订单"。 结果,他有一个半成品的专家顾问代码。 我计算了另一个逻辑:当黑体曲线从上到下穿过虚线时--必须卖出并关闭该手(买入),当红色黑体从下到上穿过虚线时。并在同一时刻立即打开另一手(买入),当相反的情况发生时,应该关闭(卖出).....,所以不断地打开一手,而每一次过线都是用来关闭一手,同时打开另一手。交叉点可能应该按照它们在收盘后的价值来考虑,即如果20分钟(收盘后),黑体的价值是51(有条件的),而虚线是50,21分钟(收盘后),黑体是50,虚线是51,那么你就必须卖出。没有SL或TP。 原则上说,这个逻辑很简单。没有箭头,没有警报和信息。只在自动模式下以纯粹的形式进行交易。 请帮助我将这段代码(如下)细化到这个逻辑。而且还可以调整周期(从1分钟到1天)和SF参数(平滑)。 第二天,我一直在努力理解代码并纠正它,但我不是一个程序员(((((((((((。 我真的希望得到您的帮助 //--- input parameters extern double MaxRisk=1.0; extern double FixLot = 0.01; extern double Exponent=2.0; extern int Magic=888; // костыли extern int TakeProfit=100; extern int StopLoss=100; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { //---- int Count=0; double b0,b1; int ticket; // параметры индикатора int SF=5; // original 5 int RSI_Period=14; // original 14 double DARFACTOR=4.236; //original 4.236 //------------ Параметры из индикатора QQEA ----------------------- // Buffer0 -- красная жирная string Buffer0=iCustom(NULL,0,"QQEA",SF,RSI_Period,DARFACTOR,0,0); // Buffer1 -- жёлтый пунктир string Buffer1=iCustom(NULL,0,"QQEA",SF,RSI_Period,DARFACTOR,1,0); b0=StrToDouble(Buffer0); b1=StrToDouble(Buffer1); double Lot=GetLot(MaxRisk); // если лот <0 выводим сообщение об ошибке if(Lot==0) { Alert("Недостаточно средств!"); return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(Lot!=0 && b0>b1) // если лот <> 0 и красная выше жёлтой { ticket=NewOrder(OP_BUY,Lot); if(ExistOrders(Symbol(),1,888,0)==true) // проверяем наличие ордера sell { CloseOrder(); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(Lot!=0 && b0<b1) // если лот <> 0 и красная выше жёлтой { ticket=NewOrder(OP_SELL,Lot); if(ExistOrders(Symbol(),0,888,0)==true) // проверяем наличие ордера buy { CloseOrder(); } } Comment("Red line: ",b0,"Yellow line: ",b1); return(0); } //------------------------------------------------------------- //расчёт лота double GetLot(int Risk) { double Free=AccountFreeMargin(); double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED); double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT); double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT); double Step=MarketInfo(Symbol(),MODE_LOTSTEP); double Lot =MathFloor(Free*Risk/100/One_Lot/Step)*Step; if(Lot<Min_Lot) Lot=Min_Lot; if(Lot>Max_Lot) Lot=Max_Lot; if(Lot*One_Lot>Free) return(0.0); return(Lot); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool ExistOrders(string sy="",int op=-1,int Magic=-1,datetime ot=0) { int i,k=OrdersTotal(),ty; if(sy=="0") sy=Symbol(); for(i=0; i<k; i++) //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { ty=OrderType(); if(ty>1 && ty<6) { if((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) { if(Magic<0 || OrderMagicNumber()==Magic) { if(ot<=OrderOpenTime()) return(True); } } } } } return(False); } //открытие нового ордера int NewOrder(int Cmd,double Lot) { double TP=0; //тейкпрофит double SL=0; //стоплосс double PR=0; //Цена while(!IsTradeAllowed()) Sleep(100); //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(Cmd==OP_BUY) { PR=Ask; if(TakeProfit>0) TP=Ask+TakeProfit*Point; if(StopLoss>0) SL=Ask-StopLoss*Point; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(Cmd==OP_SELL) { PR=Bid; if(TakeProfit>0) TP=Bid-TakeProfit*Point; if(StopLoss>0) SL=Bid+StopLoss*Point; } if(GetOrdersCount(Magic,Cmd)>0)return(0); int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP," ",0,0,Green); if(tic<0) Print("Ошибка открытия ордера: ",GetLastError()); return(tic); } // закрытие ордера void CloseOrder() { double PR=0; while(!IsTradeAllowed()) Sleep(100); if(OrderType()==OP_BUY) PR=Bid; if(OrderType()==OP_SELL) PR=Ask; if(!OrderClose(OrderTicket(),OrderLots(),PR,3,Red)) Print("Ошибка закрытия ордера: ",GetLastError()); return; } //+------------------------------------------------------------------+ // подсчет кол-ва открытых позиций int GetOrdersCount(int MagicNumber,int Type) { int count=0; for(int i=0; i<OrdersTotal(); i++) { // already closed if(OrderSelect(i,SELECT_BY_POS)==false) continue; // not current symbol if(OrderSymbol()!=Symbol()) continue; // order was opened in another way if(OrderMagicNumber()!=MagicNumber) continue; if(OrderType()==Type) { count++; } } return(count); } //------------------------------------------------------- Виктор 2012.10.04 16:16 #4126 sss2019: 好吧,我自己把所有东西都检查了20遍,不检查20遍我就不写了,所有的参数都是正确的,就像指标里的一样。问题可能出在其他地方,也许有人遇到过这样的问题? 除了在iCustom中输入错误的参数外,什么都没有,不能。搜索一下吧。 我花了一个晚上试图解决这个问题。我在将指标 中的extern转移到EA中时 混淆了参数顺序。我几乎要疯了,参数的顺序是一样的:)) asasusa 2012.10.05 05:10 #4127 granit77: 除了iCustom中的参数输入不正确外,什么都没有,不可能。查一查吧。 我自己前几天花了一个晚上的时间与它斗争。在将外部参数从指标转移到专家顾问时,我混淆了参数的顺序。我几乎要疯了,参数的顺序是一样的:)) iCustom(Symbol(),0,"RMRCS_entry-point"," ",5,6,7,62,-62,57,-57,54,-54,0.7,1.1,1.07," ",1,9,6,1,34,6,0,4,89,1,3,3.0,2.0,0.5,3.0," ",6,6,70,30,0.0,6,3.0," ",1,21,1,45,89,1,35,89,1,9," ",4,2,5,1," ",49,-49,0,0,0,0,0,0,0,0," ",0,34,200,150,1,100," ",1,3,1,1,2," ",1.4,3.7,0,1); 而这里是参数 extern string REI_str = ""; extern int REI1_Per=5; extern int REI2_Per=6; extern int REI3_Per=7; extern int REI1_up=62; extern int REI1_dn=-62; extern int REI2_up=57; extern int REI2_dn=-57; extern int REI3_up=54; extern int REI3_dn=-54; extern double REI1_ct=0.7; extern double REI2_ct=1.1; extern double REI3_ct=1.07; extern string MACD_str = ""; extern int MACD_FastMA_Meth=1; extern int MACD_FastMA_Per=9; extern int MACD_FastMA_Price=6; extern int MACD_SlowMA_Meth=1; extern int MACD_SlowMA_Per=34; extern int MACD_SlowMA_Price=6; extern int MACD_SL_Meth=0; extern int MACD_SL_Per=4; extern int MACD_Diap_Per=89; extern int MACD_Slope_Meth=1; extern int MACD_Slope_Per=3; extern double MACD_ct_1 = 3.0; extern double MACD_ct_2 = 2.0; extern double MACD_ct_3 = 0.5; extern double MACD_ct_4 = 3.0; extern string RSI_str = ""; extern int RSI_Per = 6; extern int RSI_Price = 6; extern int RSI_up = 70; extern int RSI_dn = 30; extern double RSI_ct1 = 0.0; extern int RSI_ct2 = 6; extern double RSI_ct3 = 3.0; extern string CHO_str = ""; extern int CHO_FastMA_Meth=1; extern int CHO_FastMA_Per=21; extern int CHO_SlowMA_Meth=1; extern int CHO_SlowMA_Per=45; extern int CHO_DiapVal_Per=89; extern int CHO_MADiapVal_Meth=1; extern int CHO_MADiapVal_Per=35; extern int CHO_SlopeDiapVal_Per=89; extern int CHO_MASlope_Meth=1; extern int CHO_MASlope_Per=9; extern string Stoch_str = ""; extern int Stoch_KPer=4; extern int Stoch_DPer=2; extern int Stoch_Slow=5; extern int Stoch_SL_MA_Meth=1; extern string EntryLevel_str = ""; extern int REI_SvS_up = 49; extern int REI_SvS_dn = -49; extern int MACD_SvS_up = 0; extern int MACD_SvS_dn = 0; extern int RSI_SvS_up = 0; extern int RSI_SvS_dn = 0; extern int CHO_SvS_up = 0; extern int CHO_SvS_dn = 0; extern int STO_SvS_up = 0; extern int STO_SvS_dn = 0; extern string EntryOther_str = ""; extern int MALgthBar_Meth=0; extern int MALgthBar_Per=34; extern int MAXLgthBar = 200; extern int TtS_MinABS = 150; extern int Shift_Points = 1; extern int Start_Calc = 100; extern string EntryCondition = ""; extern bool Ban_InvEntry = true; extern int InvEntry_Bars = 3; extern bool Ban_TtS_Decline=true; extern bool Ban_Entry_Series = true; extern int MAX_Entry_Series=2; extern string Gen_str = ""; extern double DiapBar_CtSl = 1.4; extern double TakeProf_CtSl = 3.7; PapaYozh 2012.10.05 05:39 #4128 sss2019: 你能告诉我,通过iCustom连接时,非标准指标的参数数量是否有限制? 我有 有一个指标有大约8个参数 我正确地输入了所有的参数,我检查了好几次,但在编译时仍然出现错误')'。- 错误的参数计数 D:\InstaTrader\experts\Expert_2.mq4 (11, 280) 我想说 "大约80" Vasiliy Smirnov 2012.10.05 05:45 #4129 把一些很少使用的参数中的extern去掉,就不会有什么混乱了。 注意我的问题。 为什么烛台下会出现物体,其原因是什么? 你能提醒我如何使一个复选框变成价格,对象属性 是什么。 Mikhail Kozhemyako 2012.10.05 06:05 #4130 PapaYozh: 我想说 "大约80"。 我说正好是80。而sss2019的参数一切正常。但这个有这么多参数的野生指标是什么呢? 1...406407408409410411412413414415416417418419420...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
好的。
是的,新酒吧。
好的。
是的,新酒吧。
下午好。大家好,请谁来帮助解决WindowScreenShot的功能。第3天,没有人回答()。编写了以下脚本(见附件文件)。
关于剧本的两句话。该脚本用于对客户终端窗口的当前图表进行截图。 在外部变量extern datetime Time_bar 中,指定了从该条开始到零条为止的时间(考虑到图表上的右缩进)。在行
int bar_number=iBarShift(NULL,0,Time_bar,true)
我们在外部变量extern datetime time_bar 中指定的酒吧的序列号被搜索到。该函数本身,在行
bool f=WindowScreenShot(name+".gif",1024,768,bar_number, Scale,View_graph)
现在的问题是...为了简单起见,让我们假设我们需要创建一个最后两根柱子的屏幕截图。然后,如果该行
int bar_number=iBarShift(NULL,0,Time_bar,true)
不做任何改变,结果将是以下截图
就是说,在截图中没有酒吧(尽管字符串
int bar_number=iBarShift(NULL,0,bar_time,true)
应按时间计算条数)
如果这一行以如下方式呈现
int bar_number=iBarShift(NULL,0,Time_bar,true)+2
你会得到我们想要的屏幕截图。
问题:为什么在这个字符串有以下形式的情况下
int bar_number=iBarShift(NULL,0,Time_bar,true)
截图是在上一行指定的右移2条的情况下拍摄的?
P.S.为了不在论坛上添乱,提前感谢您的回答。
显示代码+指标中的输入参数是什么
我检查了20次,不检查20次我是不会写的,所有的参数都是正确的,和指标中的一样。问题可能出在其他地方,也许你已经遇到了这样的问题?
同事们!!!晚上好。
我发现了一个惊人的QQE指标,并决定在这个指标的基础上找到一个专家顾问....,但却找不到它。然而,在这个论坛上,我发现了用户POZITIV的一条信息。
他写了以下逻辑:"当红线向上穿过黄线时,应该开一个 买入的订单,当红线向上穿过黄线时--一个 卖出的订单"。
结果,他有一个半成品的专家顾问代码。
我计算了另一个逻辑:当黑体曲线从上到下穿过虚线时--必须卖出并关闭该手(买入),当红色黑体从下到上穿过虚线时。并在同一时刻立即打开另一手(买入),当相反的情况发生时,应该关闭(卖出).....,所以不断地打开一手,而每一次过线都是用来关闭一手,同时打开另一手。交叉点可能应该按照它们在收盘后的价值来考虑,即如果20分钟(收盘后),黑体的价值是51(有条件的),而虚线是50,21分钟(收盘后),黑体是50,虚线是51,那么你就必须卖出。没有SL或TP。
原则上说,这个逻辑很简单。没有箭头,没有警报和信息。只在自动模式下以纯粹的形式进行交易。
请帮助我将这段代码(如下)细化到这个逻辑。而且还可以调整周期(从1分钟到1天)和SF参数(平滑)。
第二天,我一直在努力理解代码并纠正它,但我不是一个程序员(((((((((((。
我真的希望得到您的帮助
好吧,我自己把所有东西都检查了20遍,不检查20遍我就不写了,所有的参数都是正确的,就像指标里的一样。问题可能出在其他地方,也许有人遇到过这样的问题?
我花了一个晚上试图解决这个问题。我在将指标 中的extern转移到EA中时 混淆了参数顺序。我几乎要疯了,参数的顺序是一样的:))
除了iCustom中的参数输入不正确外,什么都没有,不可能。查一查吧。
我自己前几天花了一个晚上的时间与它斗争。在将外部参数从指标转移到专家顾问时,我混淆了参数的顺序。我几乎要疯了,参数的顺序是一样的:))
而这里是参数
你能告诉我,通过iCustom连接时,非标准指标的参数数量是否有限制?
我有 有一个指标有大约8个参数 我正确地输入了所有的参数,我检查了好几次,但在编译时仍然出现错误')'。- 错误的参数计数 D:\InstaTrader\experts\Expert_2.mq4 (11, 280)
我想说 "大约80"
把一些很少使用的参数中的extern去掉,就不会有什么混乱了。
注意我的问题。
为什么烛台下会出现物体,其原因是什么?
你能提醒我如何使一个复选框变成价格,对象属性 是什么。
我想说 "大约80"。
我说正好是80。而sss2019的参数一切正常。但这个有这么多参数的野生指标是什么呢?