Any rookie question, so as not to clutter up the forum. Professionals, don't pass by. Nowhere without you - 6. - page 1157 1...115011511152115311541155115611571158115911601161116211631164...1177 New comment Vitaly Muzichenko 2017.07.27 13:03 #11561 Aleksey Vyazmikin:Please help - there is a piece of code like this everything works fine normally, but got an error here - can't reproduce - the error in the code starts with Time[I] brackets2017.07.25 21:09:57.266 Worms_UpDn_RSI_OSC_Calc AUDCAD,M15: array out of range in 'Worms_UpDn_RSI_OSC_Calc.mq4' (104,47) What are the causes of the error and how to fix it?Try to replaceBars withBars(Symbol(), TF); You are getting data from another timeframe, but the number of bars is taken from the current one. Aleksey Vyazmikin 2017.07.27 14:01 #11562 Vitaly Muzichenko: Try to replaceBars withBars(Symbol(), TF); You get data from another timeframe and take the number of bars from the current one, but the data you get may be less, hence the errorThank you! I think it will help! Alexey Volchanskiy 2017.07.30 03:09 #11563 Andrey Sokolov: Attention, correct answer:Support Team2017.07.20 13:37Products not compiled in the latest build of the meta-editor may not attach to the chart.My EA stopped working in tester in non-visual mode after last update. I had to redo some things. Alexey Volchanskiy 2017.07.30 03:10 #11564 Andrey Sokolov: Greetings.Is it possible to test on history with a spread?It is set in the tester. Or do you need a real floating spread? Andrei Sokolov 2017.07.30 08:37 #11565 Alexey Volchanskiy: So it is set in the tester. Or do you want a real floating spread? Real Artyom Trishkin 2017.07.30 10:59 #11566 Andrey Sokolov: Real Real in the tester (historical) will only be available to you in MT5 scomoroh 2017.08.01 10:58 #11567 Hello! I am writing an EA for placing pending orders on fractals. But only buy orders are placed. How should I correct it? I am attaching the EA and the indicator. Files: Fractal_1.mq4 13 kb RFractals.ex4 10 kb Artyom Trishkin 2017.08.01 11:00 #11568 scomoroh: Hello! I am writing an EA to place pending orders on fractals. But only buy orders are opened. How to correct it?It is allhere. KhuKhu 2017.08.02 01:35 #11569 Hello.Could you help correct two errors.1. 1 order should open on one bar (now opens randomly)2. To correctly open 1 order with a set volume (now it is opening with different volumes)The idea is that this EA should open a deal of 10% of the deposit on one bar (I had hoped so), but it is not happening.I have been working on this for a long time now and I am happy to see the results.//+------------------------------------------------------------------+ //| 1237654.mq4 | //| Copyright 2017, MetaQuotes Software Corp. | //| [url]https://www.mql5.com[/url] | //+------------------------------------------------------------------+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict extern int tf_bar = 0; //таймфрейм на котором будет браться значение бара extern int magic = 123; extern double stop = 0; extern double StopLoss = 0; extern double TakeProfit =0; extern double Prots= 0.10; int ticket,Symbol; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int mper[10]={0,1,5,15,30,60,240,1440,10080,43200};//массив таймфрейма int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT);// Мин. стоим. лотов double Step =MarketInfo(Symbol(),MODE_LOTSTEP);//Шаг изменен лотов double Free =AccountBalance(); // Свободн средства double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);//Стоим.лота double Lot=MathFloor(Free*Prots/One_Lot/Step)*Step;// Лоты if ( Close[0]>Close[1]) //if (! NumberOfBarOpenLastPos(NULL,mper[tf_bar],OP_BUY, magic) ==0) {//запрет неск. сделок на 1 баре stop = Ask - StopLoss * Point; ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,0,0,0,"Buy",magic,0,Lime); }//закрываем скобку NumberOfBarOpenLastPos if ( Close[0]<Close[1]) //if (!NumberOfBarOpenLastPos(NULL,mper[tf_bar],OP_SELL, magic) ==0) {//запрет неск. сделок на 1 баре ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,0,0,0,"Sell",magic,0,Red); }//закрываем скобку NumberOfBarOpenLastPos return; } //+------------------------------------------------------------------+ //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, [url=http://www.kimiv.ru]Автоматизация торговли на финансовых рынках - Главная[/url] | //+----------------------------------------------------------------------------+ //| Версия : 19.02.2008 | //| Описание : Возвращает номер бара открытия последней позиции или -1. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" или NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий таймфрейм) | //| op - операция ( -1 - любая позиция) | //| mn - MagicNumber ( -1 - любой магик) | //+----------------------------------------------------------------------------+ int NumberOfBarOpenLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) { datetime t=0; int i, k=OrdersTotal(); if (sy=="" || sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==sy) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (t<OrderOpenTime()) t=OrderOpenTime(); }}}}}} return(iBarShift(sy, tf, t, True));} ASCTrend system [ARCHIVE!] Any rookie question, Volatility Quality Index Александр 2017.08.02 17:11 #11570 Please advise where the error lies.Code://+------------------------------------------------------------------+ //| InitMQL4.mqh | //| Copyright DC2008 | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "keiji" #property copyright "DC2008" #property link "https://www.mql5.com" //--- Объявление констант #include <MT4Orders.mqh> #include <MQL4_to_MQL5.mqh> //--- //#define extern input #define OBJPROP_TIME1 300 //datetime Получает/устанавливает первую координату времени #define OBJPROP_PRICE1 301 //double Получает/устанавливает первую координату цены #define OBJPROP_TIME2 302 //datetime Получает/устанавливает вторую координату времени #define OBJPROP_PRICE2 303 //double Получает/устанавливает вторую координату цены #define OBJPROP_TIME3 304 //datetime Получает/устанавливает третью координату времени #define OBJPROP_PRICE3 305 //double Получает/устанавливает третью координату цены //--- //OBJPROP_COLOR 6 color Получает/устанавливает цвет объекта //OBJPROP_STYLE 7 int Получает/устанавливает стиль линии объекта //OBJPROP_WIDTH 8 int Получает/устанавливает ширину линии объекта //OBJPROP_BACK 9 bool Получает/устанавливает флаг фонового отображения объекта //--- #define OBJPROP_RAY 310 //bool Получает/устанавливает флаг свойства луч для объектов типа OBJ_TREND и ему подобных //--- //OBJPROP_ELLIPSE 11 bool Получает/устанавливает флаг отображения полного эллипса для объекта OBJ_FIBOARC //OBJPROP_SCALE 12 double Получает/устанавливает значение масштаба объекта //OBJPROP_ANGLE 13 double Получает/устанавливает значение угла в градусах объекта OBJ_TRENDBYANGLE //OBJPROP_ARROWCODE 14 int Получает/устанавливает код стрелки объекта OBJ_ARROW. Может быть одним из символов wingdings или один из предопределенных кодов стрелок //OBJPROP_TIMEFRAMES 15 int Получает/устанавливает свойство отображения объекта на различных периодах. Может быть одним или комбинацией нескольких из констант видимости объекта. //OBJPROP_DEVIATION 16 double Получает/устанавливает размер отклонения для объекта OBJ_STDDEVCHANNEL //OBJPROP_FONTSIZE 100 int Получает/устанавливает размер шрифта для объектов OBJ_TEXT и OBJ_LABEL //OBJPROP_CORNER 101 int Получает/устанавливает номер угла привязки для объекта OBJ_LABEL. Принимает значения 0-3 //OBJPROP_XDISTANCE 102 int Получает/устанавливает расстояние X-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL //OBJPROP_YDISTANCE 103 int Получает/устанавливает расстояние Y-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL //--- #define OBJPROP_FIBOLEVELS 200 //int Получает/устанавливает число уровней объекта Fibonacci. Может быть от 1 до 32 //--- //OBJPROP_LEVELCOLOR 201 color Получает/устанавливает цвет линии уровня объекта //OBJPROP_LEVELSTYLE 202 int Получает/устанавливает стиль линии уровня объекта //OBJPROP_LEVELWIDTH 203 int Получает/устанавливает ширину линии уровня объекта #define OBJPROP_FIRSTLEVEL1 211 //int Получает/устанавливает значения уровня объекта Fibonacci с индексом n. Индекс n может быть от 0 до (количество уровней -1), но не более 31 #define OBJPROP_FIRSTLEVEL2 212 #define OBJPROP_FIRSTLEVEL3 213 #define OBJPROP_FIRSTLEVEL4 214 #define OBJPROP_FIRSTLEVEL5 215 #define OBJPROP_FIRSTLEVEL6 216 #define OBJPROP_FIRSTLEVEL7 217 #define OBJPROP_FIRSTLEVEL8 218 #define OBJPROP_FIRSTLEVEL9 219 #define OBJPROP_FIRSTLEVEL10 220 #define OBJPROP_FIRSTLEVEL11 221 #define OBJPROP_FIRSTLEVEL12 222 #define OBJPROP_FIRSTLEVEL13 223 #define OBJPROP_FIRSTLEVEL14 224 #define OBJPROP_FIRSTLEVEL15 225 #define OBJPROP_FIRSTLEVEL16 226 #define OBJPROP_FIRSTLEVEL17 227 #define OBJPROP_FIRSTLEVEL18 228 #define OBJPROP_FIRSTLEVEL19 229 #define OBJPROP_FIRSTLEVEL20 230 #define OBJPROP_FIRSTLEVEL21 231 #define OBJPROP_FIRSTLEVEL22 232 #define OBJPROP_FIRSTLEVEL23 233 #define OBJPROP_FIRSTLEVEL24 234 #define OBJPROP_FIRSTLEVEL25 235 #define OBJPROP_FIRSTLEVEL26 236 #define OBJPROP_FIRSTLEVEL27 237 #define OBJPROP_FIRSTLEVEL28 238 #define OBJPROP_FIRSTLEVEL29 239 #define OBJPROP_FIRSTLEVEL30 240 #define OBJPROP_FIRSTLEVEL31 241 //--- #define MODE_OPEN 0 #define MODE_CLOSE 3 #define MODE_VOLUME 4 #define MODE_REAL_VOLUME 5 //--- #define DOUBLE_VALUE 0 #define FLOAT_VALUE 1 #define LONG_VALUE INT_VALUE //--- #define CHART_BAR 0 #define CHART_CANDLE 1 //--- #define MODE_ASCEND 0 #define MODE_DESCEND 1 //--- #define MODE_LOW 1 #define MODE_HIGH 2 #define MODE_TIME 5 #define MODE_POINT 11 #define MODE_TICKVALUE 16 #define MODE_TICKSIZE 17 #define MODE_SWAPLONG 18 #define MODE_SWAPSHORT 19 #define MODE_STARTING 20 #define MODE_EXPIRATION 21 #define MODE_TRADEALLOWED 22 #define MODE_MINLOT 23 #define MODE_LOTSTEP 24 #define MODE_MAXLOT 25 #define MODE_SWAPTYPE 26 #define MODE_PROFITCALCMODE 27 #define MODE_MARGINCALCMODE 28 #define MODE_MARGININIT 29 #define MODE_MARGINMAINTENANCE 30 #define MODE_MARGINHEDGED 31 #define MODE_MARGINREQUIRED 32 #define MODE_FREEZELEVEL 33 //--- #define EMPTY -1 //--- #define CharToStr CharToString #define StrToDouble StringToDouble #define StrToInteger (int)StringToInteger #define StrToTime StringToTime #define StringSetChar StringSetCharacter //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ ENUM_TIMEFRAMES TFMigrate(int tf) { switch(tf) { case 0: return(PERIOD_CURRENT); case 1: return(PERIOD_M1); case 5: return(PERIOD_M5); case 15: return(PERIOD_M15); case 30: return(PERIOD_M30); case 60: return(PERIOD_H1); case 240: return(PERIOD_H4); case 1440: return(PERIOD_D1); case 10080: return(PERIOD_W1); case 43200: return(PERIOD_MN1); case 2: return(PERIOD_M2); case 3: return(PERIOD_M3); case 4: return(PERIOD_M4); case 6: return(PERIOD_M6); case 10: return(PERIOD_M10); case 12: return(PERIOD_M12); case 16385: return(PERIOD_H1); case 16386: return(PERIOD_H2); case 16387: return(PERIOD_H3); case 16388: return(PERIOD_H4); case 16390: return(PERIOD_H6); case 16392: return(PERIOD_H8); case 16396: return(PERIOD_H12); case 16408: return(PERIOD_D1); case 32769: return(PERIOD_W1); case 49153: return(PERIOD_MN1); default: return(PERIOD_CURRENT); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ ENUM_MA_METHOD MethodMigrate(int method) { switch(method) { case 0: return(MODE_SMA); case 1: return(MODE_EMA); case 2: return(MODE_SMMA); case 3: return(MODE_LWMA); default: return(MODE_SMA); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ ENUM_APPLIED_PRICE PriceMigrate(int price) { switch(price) { case 1: return(PRICE_CLOSE); case 2: return(PRICE_OPEN); case 3: return(PRICE_HIGH); case 4: return(PRICE_LOW); case 5: return(PRICE_MEDIAN); case 6: return(PRICE_TYPICAL); case 7: return(PRICE_WEIGHTED); default: return(PRICE_CLOSE); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ ENUM_STO_PRICE StoFieldMigrate(int field) { switch(field) { case 0: return(STO_LOWHIGH); case 1: return(STO_CLOSECLOSE); default: return(STO_LOWHIGH); } } //+------------------------------------------------------------------+ enum ALLIGATOR_MODE { MODE_GATORJAW=1, MODE_GATORTEETH, MODE_GATORLIPS }; enum ADX_MODE { MODE_MAIN, MODE_PLUSDI, MODE_MINUSDI }; enum UP_LOW_MODE { MODE_BASE, MODE_UPPER, MODE_LOWER }; enum ICHIMOKU_MODE { MODE_TENKANSEN=1, MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN }; //enum MAIN_SIGNAL_MODE{ MODE_MAIN, MODE_SIGNAL }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double CopyBufferMQL4(int handle,int index,int shift) { double buf[]; switch(index) { case 0: if(CopyBuffer(handle,0,shift,1,buf)>0) return(buf[0]); break; case 1: if(CopyBuffer(handle,1,shift,1,buf)>0) return(buf[0]); break; case 2: if(CopyBuffer(handle,2,shift,1,buf)>0) return(buf[0]); break; case 3: if(CopyBuffer(handle,3,shift,1,buf)>0) return(buf[0]); break; case 4: if(CopyBuffer(handle,4,shift,1,buf)>0) return(buf[0]); break; default: break; } return(EMPTY_VALUE); } //+------------------------------------------------------------------+ int DayOfWeek() { MqlDateTime tm; TimeCurrent(tm); return(tm.day_of_week); } //+------------------------------------------------------------------+ int iBarShift(datetime barTime) { datetime lastbar[]; datetime curr=(datetime)SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE); int res=CopyTime(NULL,NULL,curr,barTime,lastbar); if(res<=0) { Print("Getting High data is failed! Error",GetLastError()); return(0); } return(res-1); } //+------------------------------------------------------------------+ double iFractalsMQL4(string symbol, int tf, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iFractals(symbol,timeframe); if(handle<0) { Print("Объект iFractals не создан: Ошибка ",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode-1,shift)); } //+------------------------------------------------------------------+ int Hour() { MqlDateTime tm; TimeCurrent(tm); return(tm.hour); } //+------------------------------------------------------------------+ int Minute() { MqlDateTime tm; TimeCurrent(tm); return(tm.min); } //+------------------------------------------------------------------+ int iBars(string symbol,int tf) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int BARS=Bars(symbol,timeframe); return(BARS); } Function is being evaluated int iBars(string symbol,int tf) iBars ',' - unexpected token '_Symbol' - some operator expected Не могу понять в чем проблема. Если в отдельном файле компилирую то все в порядке. Здесь выскакивает ошибка. Автоматический трейдинг и тестирование торговых стратегий www.mql5.com MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций 1...115011511152115311541155115611571158115911601161116211631164...1177 New comment
Please help - there is a piece of code like this
everything works fine normally, but got an error here - can't reproduce - the error in the code starts with Time[I] brackets
2017.07.25 21:09:57.266 Worms_UpDn_RSI_OSC_Calc AUDCAD,M15: array out of range in 'Worms_UpDn_RSI_OSC_Calc.mq4' (104,47)
Try to replaceBars withBars(Symbol(), TF);
You are getting data from another timeframe, but the number of bars is taken from the current one.
Try to replaceBars withBars(Symbol(), TF);
You get data from another timeframe and take the number of bars from the current one, but the data you get may be less, hence the error
Thank you! I think it will help!
Attention, correct answer:
My EA stopped working in tester in non-visual mode after last update. I had to redo some things.
Greetings.
Is it possible to test on history with a spread?
It is set in the tester. Or do you need a real floating spread?
So it is set in the tester. Or do you want a real floating spread?
Real
Hello! I am writing an EA for placing pending orders on fractals. But only buy orders are placed. How should I correct it? I am attaching the EA and the indicator.
Hello! I am writing an EA to place pending orders on fractals. But only buy orders are opened. How to correct it?
It is allhere.
Hello.
Could you help correct two errors.
1. 1 order should open on one bar (now opens randomly)
2. To correctly open 1 order with a set volume (now it is opening with different volumes)
The idea is that this EA should open a deal of 10% of the deposit on one bar (I had hoped so), but it is not happening.
I have been working on this for a long time now and I am happy to see the results.
Please advise where the error lies.
Code:
Function is being evaluated