[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 274 1...267268269270271272273274275276277278279280281...432 新评论 Alekseu Fedotov 2013.04.08 16:28 #2731 CYBOPOB: 好吧,如果写得人道一点就好了......开始时一切似乎都很清楚,但稍后你就会开始失去理智......))。O.K. 一个具体的例子。 该订单在TP运动结束时被关闭,但由于卖出信号没有被取消,新的订单被打开,这是不可接受的。我测量了720秒,之后我们可以打开一个新的订单。那么,在这种情况下,这些秒数将从哪个顺序测量,从历史上的第一个顺序还是从最后一个顺序?然后:如果是这样,然后呢?既然我加了Z,那就从头算起吧?呵斥:))非常感谢您! 该函数返回自上次关闭位置以来的秒数。 gince 2013.04.08 16:38 #2732 数组的长度发生了变化,我们看到它从2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: ArraySize 21 但所有元素都以零的形式写入数组中。2013.04.08 19:06:04 2013.03.28 16:00 testavimas naktini fleta EURUSD,M15: avgPriceC[19]=0.00000000 所以这一行没有为数组元素 分配 Close[1]值。 avgPriceC[i] = Close[1]; 谁能解释一下原因。 Валерий 2013.04.08 16:42 #2733 r772ra: 该函数返回自最后一个位置被关闭以来的秒数 谢谢你:) gince 2013.04.08 18:01 #2734 帮助我试着通过交错变量来实现,但没有成功。ArrayResize 被放在了数组的后面。其结果是一样的。数组中存在零。 int start() { double volMA11, volMA12, volMA21, volMA22; double x[], y[]; Print("******************STARTAS*****************************************"); if(!TF_F_NewBar())return(0); volMA11 = iCustom(NULL, 15, "volumeMA", 2, 1); volMA12 = iCustom(NULL, 15, "volumeMA", 2, 2); volMA21 = iCustom(NULL, 15, "volumeMA", 3, 1); volMA22 = iCustom(NULL, 15, "volumeMA", 3, 2); double h = High[1]; double l = Low[1]; double o = Open[1]; double c = NormalizeDouble(iClose(NULL, 0, 1),Digits); if(DayOfWeek()==1 || DayOfWeek()==2 || DayOfWeek()==3 || DayOfWeek()==4) //jei pirmadienis antradienis ar treciadienis, ar ketvirtadienis { if(TimeCurrent()>= StrToTime(startstartFlatMA) && TimeCurrent()<= StrToTime(endstartFlatMA)+24*60*60) { //Print("fleto starto ieskojimo laikas prasidejo "+TimeToStr(TimeCurrent())+" >= "+TimeToStr(StrToTime(startstartFlatMA))+ //" && "+TimeToStr(TimeCurrent())+" <= "+TimeToStr(StrToTime(endstartFlatMA)+24*60*60)); bool laikas = true; Print("laikas = "+laikas); if(volMA21 - volMA11 > 0 && volMA12 - volMA22 > 0) { //jei buvo susikirtimas susikirtimas = true; } if(susikirtimas == true) { if(zvakes_pabaiga) { if(iTime(NULL, BarEnd, 1)!= LastTime) { LastTime = iTime(NULL, BarEnd, 1); flat = true; LastTime = iTime(NULL, BarEnd, 1); } else return(0); } else flat = true; if(flat == true) { i++; avgPriceH[i] = h; avgPriceL[i] = l; avgPriceO[i] = o; avgPriceC[i] = c; j++; ArrayResize(chPriceC,j); ArrayResize(chTime,j); } ArrayResize(avgPriceH,i); ArrayResize(avgPriceL,i); ArrayResize(avgPriceO,i); ArrayResize(avgPriceC,i); Print("ArraySize "+ArraySize(avgPriceC)); for(int a=0; a<=i; a++)Print("avgPriceC["+a+"]="+avgPriceC[a]); for(int b=0; b<=j; b++)Print("chPriceC["+b+"]="+chPriceC[b]); for( b=0; b<=j; b++)Print("chTime["+b+"]="+chTime[b]); } } } return(0); } 从第272节开始。 Alexey Subbotin 2013.04.08 19:26 #2735 gince:帮助我通过中间变量试了一下,没有成功。ArrayResize 被放在了数组的后面。其结果是一样的。数组中存在零。 从第272节开始 我在你的代码中没有看到int i字符串和索引的初始化。请将字符串提交给工作室。 ZZY我的立陶宛语说得不好,代码中的注释让我有点困惑))) gince 2013.04.08 19:38 #2736 alsu: 我没有看到你的int i字符串和索引初始化。请在工作室里。 ZZY 我的立陶宛语说得不好,代码中的注释让我有点不适应))) //+------------------------------------------------------------------+ //| naktinis fletas.mq4 | //| Ñåðãåé (urdala) Ðàøåâñêèé | //| gintaraitis@gmail.com | //+------------------------------------------------------------------+ #property copyright "Ñåðãåé (urdala) Ðàøåâñêèé" #property link "gintaraitis@gmail.com" //greitas MA extern int MA_Period1 = 8; extern int plius1 = 100; extern int MA_Shift1 = 0; extern int MA_Method1 = 0; //Letas MA extern int MA_Period2 = 13; extern int plius2 = 100; extern int MA_Shift2 = 0; extern int MA_Method2 = 3; //Fleto pradzia //fleto ipradzios eskojimas pagal indikatoriu arba laika extern bool start = true; // true ->pagal indikatoriu, false->pagal laika // pagal indikatoriu fleto pradzios pradesim ieskoti nuo sio laiko extern int startHourFlatMA = 16; extern int startMinFlatMA = 00; extern string startstartFlatMA = "16:00"; extern string endstartFlatMA = "00:00"; //suradus pagal indikatoriu dar lauksim kol uzsidarys BarEnd zvake extern bool zvakes_pabaiga = true;//ar lauksim kol uzsidarys M240 zvake, ar priimsim kad fletas prasidejo nuo susikirtimo extern int BarEnd = 240; datetime LastTime; //datetime startTime; // pagal laika fleto pradzios pradesim ieskoti nuo sio laiko extern int startHourFlat = 0; // extern int startMinFlat = 0; // //fleto pabaiga //Fleto pabaiga jei indikatorius duoda signala siame laiko tarpe //Laiko tarpo pradzia extern int startHourEnd = 4; extern int startMinEnd = 45; //laiko tarpo pabaiga arba fleto pabaiga extern int endHourEnd = 7; extern int endMinEnd = 30; //Ar naudosom Volumes filtra extern bool volFiltr = true; //true -> naudosim, false -> nanaudosim //skirtumas tarp penktadienio uzdarymo ir pirmadienio atidarymo extern int gep = 300; //Naktinio-fletinio pipsavimo ijungimas bool nightFlat = false; //true -> ijungtas, false -> neijungtas bool susikirtimas = false; bool flat; //masyvai double chPriceH[], chPriceL[], chPriceO[], chPriceC[], chTime[]; double avgPriceH[], avgPriceL[], avgPriceO[], avgPriceC[]; int i = -1; // masyvu indeksas -1, nes toliau pridesim 1, o masyvu indeksacija prasideda nuo 0 int j = -1; // masyvu indeksas -1, nes toliau pridesim 1, o masyvu indeksacija prasideda nuo 0 int n = -1; // kintamasis naujo masyvo indeksacijai int iH, iL ,iO, iC, iT; double C[], T[], y[]; double max; //max skirtumas tarp LR median ir Close //*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*--*-*--*-*-*-*-*-*-*-*-*-*--*-*-*-*-*-*-*-*-* int init () { ArrayResize(chPriceH, 0); ArrayResize(chPriceL, 0); ArrayResize(chPriceO, 0); ArrayResize(chPriceC, 0); ArrayResize(chTime, 0); ArrayResize(avgPriceH, 0); ArrayResize(avgPriceL, 0); ArrayResize(avgPriceO, 0); ArrayResize(avgPriceC, 0); ArrayResize (C, 0); ArrayResize (T, 0); ArrayResize (y, 0); } //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-**-*-*-*-*-*-*-*-*-*- int start() { double volMA11, volMA12, volMA21, volMA22; double x[], y[]; Print("******************STARTAS*****************************************"); if(!TF_F_NewBar())return(0); volMA11 = iCustom(NULL, 15, "volumeMA", 2, 1); volMA12 = iCustom(NULL, 15, "volumeMA", 2, 2); volMA21 = iCustom(NULL, 15, "volumeMA", 3, 1); volMA22 = iCustom(NULL, 15, "volumeMA", 3, 2); if(DayOfWeek()==1 || DayOfWeek()==2 || DayOfWeek()==3 || DayOfWeek()==4) //jei pirmadienis antradienis ar treciadienis, ar ketvirtadienis { if(TimeCurrent()>= StrToTime(startstartFlatMA) && TimeCurrent()<= StrToTime(endstartFlatMA)+24*60*60) { //Print("fleto starto ieskojimo laikas prasidejo "+TimeToStr(TimeCurrent())+" >= "+TimeToStr(StrToTime(startstartFlatMA))+ //" && "+TimeToStr(TimeCurrent())+" <= "+TimeToStr(StrToTime(endstartFlatMA)+24*60*60)); bool laikas = true; Print("laikas = "+laikas); if(volMA21 - volMA11 > 0 && volMA12 - volMA22 > 0) { //jei buvo susikirtimas susikirtimas = true; } if(susikirtimas == true) { if(zvakes_pabaiga) { if(iTime(NULL, BarEnd, 1)!= LastTime) { LastTime = iTime(NULL, BarEnd, 1); flat = true; LastTime = iTime(NULL, BarEnd, 1); } else return(0); } else flat = true; if(flat == true) { i++; //Zinodami indekso eiles numeri galim keisti masyvo ilgi ArrayResize(avgPriceH,i); ArrayResize(avgPriceL,i); ArrayResize(avgPriceO,i); ArrayResize(avgPriceC,i); Print("ArraySize "+ArraySize(avgPriceC)); //jei fletas prasidejo renkam duomenis i masyva zvakiu HL ir OC skaiciavimui avgPriceH[i] = High[1]; avgPriceL[i] = Low[1]; avgPriceO[i] = Open[1]; avgPriceC[i] = Close[1]; j++; ArrayResize(chPriceC,i); ArrayResize(chTime,i); } for(int a=0; a<=i; a++)Print("avgPriceC["+a+"]="+avgPriceC[a]); for(int b=0; b<=j; b++)Print("chPriceC["+b+"]="+chPriceC[b]); for(int c=0; c<=j; c++)Print("chTime["+c+"]="+chTime[c]); } } } return(0); } //----------------------------------------------------------------- bool TF_F_NewBar() { static datetime TimeLast; if(TimeLast!=Time[0]) { TimeLast=Time[0]; return(true); } return(false); } Алексей Тарабанов 2013.04.08 20:01 #2737 gince: 你已经两次声明了数组y[]:全局和启动函数中。 gince 2013.04.08 20:11 #2738 tara: 你已经两次声明了数组y[]:全局和启动函数中。 在KIM的例子中还有#define r 30 void start() { double x[r], y[]; for (int i=0; i<r; i++) x[i]=Close[i+1]; ArrayLR(x, y); for (i=0; i<r; i++) SetArrow(170, Red, "arr"+i, Time[i+1], y[i]); } //+----------------------------------------------------------------------------+ //| Àâòîð : Êèì Èãîðü Â. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Âåðñèÿ : 20.05.2008 | //| Îïèñàíèå : Ôîðìèðóåò ìàññèâ çíà÷åíèé ëèíåéíîé ðåãðåññèè. | //+----------------------------------------------------------------------------+ //| Ïàðàìåòðû: | //| x - ìàññèâ çíà÷åíèé ÷èñëîâîãî ðÿäà | //| y - ìàññèâ çíà÷åíèé ëèíåéíîé ðåãðåññèè | //+----------------------------------------------------------------------------+ void ArrayLR(double& x[], double& y[]) { double a, b, c, sx=0, sx2=0, sxy=0, sy=0; int i, n=ArraySize(x); if (n>1) { for (i=0; i<n; i++) { sx+=i+1; sy+=x[i]; sxy+=(i+1)*x[i]; sx2+=(i+1)*(i+1); } a=sx*sy-n*sxy; c=sx*sx-n*sx2; if (c!=0) a=a/c; else a=0; b=(sy-a*sx)/n; ArrayResize(y, n); for (i=0; i<n; i++) y[i]=a*(i+1)+b; } else Print("ArrayLR(): Íåäîñòàòî÷íîå êîëè÷åñòâî ýëåìåíòîâ ðÿäà! n=", n); } //+----------------------------------------------------------------------------+ //| Àâòîð : Êèì Èãîðü Â. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Âåðñèÿ : 12.10.2007 | //| Îïèñàíèå : Óñòàíîâêà çíà÷êà íà ãðàôèêå | //+----------------------------------------------------------------------------+ //| Ïàðàìåòðû: | //| cd - êîä çíà÷êà | //| cl - öâåò çíà÷êà | //| nm - íàèìåíîâàíèå ("" - âðåìÿ îòêðûòèÿ òåêóùåãî áàðà) | //| t1 - âðåìÿ îòêðûòèÿ áàðà (0 - òåêóùèé áàð) | //| p1 - öåíîâîé óðîâåíü (0 - Bid) | //| sz - ðàçìåð çíà÷êà (0 - ïî óìîë÷àíèþ) | //+----------------------------------------------------------------------------+ void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=0) { if (nm=="") nm=DoubleToStr(Time[0], 0); if (t1<=0) t1=Time[0]; if (p1<=0) p1=Bid; if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, 0, 0,0); ObjectSet(nm, OBJPROP_TIME1 , t1); ObjectSet(nm, OBJPROP_PRICE1 , p1); ObjectSet(nm, OBJPROP_ARROWCODE, cd); ObjectSet(nm, OBJPROP_COLOR , cl); ObjectSet(nm, OBJPROP_WIDTH , sz); } //+----------------------------------------------------------------------------+ Алексей Тарабанов 2013.04.08 20:22 #2739 gince: 在KIM的例子中,还有 你想坐出租车,还是搭车? Алексей Тарабанов 2013.04.08 20:25 #2740 完全不一样,但非常不同。全球和本地数据阅读更多。 1...267268269270271272273274275276277278279280281...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
好吧,如果写得人道一点就好了......开始时一切似乎都很清楚,但稍后你就会开始失去理智......))。
O.K. 一个具体的例子。
该订单在TP运动结束时被关闭,但由于卖出信号没有被取消,新的订单被打开,这是不可接受的。
我测量了720秒,之后我们可以打开一个新的订单。那么,在这种情况下,这些秒数将从哪个顺序测量,从历史上的第一个顺序还是从最后一个顺序?
然后:如果是这样,然后呢?既然我加了Z,那就从头算起吧?呵斥:))
非常感谢您!
该函数返回自上次关闭位置以来的秒数。
数组的长度发生了变化,我们看到它从
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: ArraySize 21
但所有元素都以零的形式写入数组中。
2013.04.08 19:06:04 2013.03.28 16:00 testavimas naktini fleta EURUSD,M15: avgPriceC[19]=0.00000000
所以这一行没有为数组元素 分配 Close[1]值。
avgPriceC[i] = Close[1];
谁能解释一下原因。该函数返回自最后一个位置被关闭以来的秒数
谢谢你:)
帮助
我试着通过交错变量来实现,但没有成功。ArrayResize 被放在了数组的后面。其结果是一样的。数组中存在零。
从第272节开始。帮助
我通过中间变量试了一下,没有成功。ArrayResize 被放在了数组的后面。其结果是一样的。数组中存在零。
从第272节开始我在你的代码中没有看到int i字符串和索引的初始化。请将字符串提交给工作室。
ZZY我的立陶宛语说得不好,代码中的注释让我有点困惑)))
我没有看到你的int i字符串和索引初始化。请在工作室里。
ZZY 我的立陶宛语说得不好,代码中的注释让我有点不适应)))
你已经两次声明了数组y[]:全局和启动函数中。
你已经两次声明了数组y[]:全局和启动函数中。
在KIM的例子中还有
在KIM的例子中,还有
你想坐出租车,还是搭车?