[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 263

 
Сейчас на каждом баре он заносит один клозе в массив. А если так несобирать, потом мне придется подщитывать с какого бара собирать данные, крутить цикл, фильтроват. А так остается только последнее.
 
gince:

Я незнаю сколько в массиве должно быть элементов.  Это может быть и 40, и 65. Одним словом нужен динамический массив

Для изменения размера массива используйте ArraySize. Сделал такой вот скрипт:

int start()
  {
//----
   int start=3;
   int end1=30;
   int end2=90;
   int array[];

     ArrayResize(array, (end1-start) );
     int size1=ArraySize(array);
     ArrayResize(array, (end2-start) );
     int size2=ArraySize(array);

   Comment("start=",start,", end1=",end1,", end2=",end2,", size1=",size1,", size2=",size2);
//----
   return(0);
  }
В комментарии выходит: start=3, end1=30, end2=90, size1=27, size2=87
 
LeksusMt4:

Добрый день, Помогите пожалуйста, робот с 0.1 лота множит объемы а с 0.01 нет.... Что можно поменять?


И тут постелился! SRC! Для вставки кода!
 
borilunad:

И тут постелился! SRC! Для вставки кода!


Я плохо еще разбираюсь... подскажите что сделать....

 

Использую функция SetTLine() от KimIV https://forum.mql4.com/ru/38949/page6#434255 .  Проблема в том, что нужно две линии (верхняя и нижняя), но мне не получается. Сделал еще одну функцию SetTLine1() с другими переменными, но всё равно не получилось.  Как это сделать?

datetime d0=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));
datetime d1=TimeCurrent()-24*60*60;
while (TimeDayOfWeek(d1)==0 || TimeDayOfWeek(d1)==6) d1-=24*60*60;
d1=StrToTime(TimeToStr(d1, TIME_DATE));
datetime d2=d1-24*60*60;
while (TimeDayOfWeek(d2)==0 || TimeDayOfWeek(d2)==6) d2-=24*60*60;
d2=StrToTime(TimeToStr(d2, TIME_DATE));
int b2=iBarShift(NULL, 0, d2);     // номер бара начала второго дня
int b1=iBarShift(NULL, 0, d1);     // номер бара начала первого дня
int b0=iBarShift(NULL, 0, d0);     // номер бара начала текущего дня
int n2=iLowest(NULL, 0, MODE_LOW, b2-b1-1, b1);
int n1=iLowest(NULL, 0, MODE_LOW, b1-b0-1, b0);
datetime t1=Time[n2];
double   p1=Low[n2];
datetime t2=Time[n1];
double   p2=Low[n1];
SetTLine(Magenta, "", t1, p1, t2, p2, True, STYLE_SOLID, 3);   

datetime di0=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));
datetime di1=TimeCurrent()-24*60*60;
while (TimeDayOfWeek(di1)==0 || TimeDayOfWeek(di1)==6) di1-=24*60*60;
di1=StrToTime(TimeToStr(di1, TIME_DATE));
datetime di2=di1-24*60*60;
while (TimeDayOfWeek(di2)==0 || TimeDayOfWeek(di2)==6) di2-=24*60*60;
di2=StrToTime(TimeToStr(di2, TIME_DATE));
int bi2=iBarShift(NULL, 0, di2);     // номер бара начала второго дня
int bi1=iBarShift(NULL, 0, di1);     // номер бара начала первого дня
int bi0=iBarShift(NULL, 0, di0);     // номер бара начала текущего дня
int ni2=iHighest(NULL, 0, MODE_HIGH, bi2-bi1-1, bi1);
int ni1=iHighest(NULL, 0, MODE_HIGH, bi1-bi0-1, bi0);
datetime t1i=Time[ni2];
double   p1i=High[ni2];
datetime t2i=Time[ni1];
double   p2i=High[ni1];
SetTLine(..................................................
 

Добрый день! Помогите побороть ошибку: ERR_INVALID_FUNCTION_PARAMVALUE - 4051 - Недопустимое значение параметра функции. 

Никак не могу найти этот недопустимы параметр.

//--------------------------------------------------------------- 6 --
   Print ("Конец  цикла вычисления торговых критериев --------------------------------------------------------------------");     

      Print("Попытка открыть ордер.");     
      if (Opn_B==true)
        {                                       // критерий откр. Buy
         Print("Попытка открыть ордер. Buy");
         RefreshRates();                        // Обновление данных
         SL=Bid - StopLoss*Point;     // Вычисление SL откр.
         TP=Bid + TakeProfit*Point;   // Вычисление TP откр.         
         Print("Попытка открыть Buy. Ожидание ответа..");
         MyTicket=OrderSend(Symbol(),OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buy counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Buy ",MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_BUY ", Fun_Erorr);
            }  
         return;                                // Выход из start()
        }
      if (Opn_S==true)              // Открытых орд. нет +
        {                                       // критерий откр. Sell
        Print("Попытка открыть ордер. Sell");
         RefreshRates();                        // Обновление данных
         SL=Ask + StopLoss*Point;     // Вычисление SL откр.
         TP=Ask - TakeProfit*Point;   // Вычисление TP откр.
         Print("Попытка открыть Sell. Ожидание ответа..");
         MyTicket=OrderSend(Symbol(),OP_SELL,Lts,Bid,2,SL,TP);//Открытие Sel ,counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Sell ",MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_SELL", Fun_Erorr);
            }             
         }
      return(0);
  }
//+------------------------------------------------------------------+

      
 
LeksusMt4:


Я плохо еще разбираюсь... подскажите что сделать....

SRC это тут:


А если код оч. большой, как в вашем случае, то прикрепляйте файл:


 
LeksusMt4:


Я плохо еще разбираюсь... подскажите что сделать....

 


Я Вам ответил в другой ветке! И удалите свои посты с "портянками"!
 

Теперь ошибка 130, почему не пойму. Кто может подскажите где я ошибаюсь.

   Print ("Конец  цикла вычисления торговых критериев --------------------------------------------------------------------");     

      Print("Попытка открыть ордер.");     
      if (Opn_B==true)
        {                                       // критерий откр. Buy
         Print("Попытка открыть ордер. Buy");
         RefreshRates();                        // Обновление данных
         SL=Bid - StopLoss*Point;     // Вычисление SL откр.
         TP=Bid + TakeProfit*Point;   // Вычисление TP откр.
         Print("SL ",SL," == Bid ",Bid," - StopLoss == ", StopLoss, " * Point ==",Point);
         Print("TP ",TP," == Bid ",Bid," + TakeProfit == ", TakeProfit," * Point ==",Point);         
         Print("Попытка открыть Buy. Ожидание ответа..", "| SL == ",NormalizeDouble(SL,5),"| TP == ",NormalizeDouble(TP,5));
         MyTicket=OrderSend(Symbol(),OP_BUY,0.1,Ask,2,NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits));//Открытие Buy counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Buy ", MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_BUY == ", Fun_Erorr);
            }  
         return;                                // Выход из start()
        }
      if (Opn_S==true)              // Открытых орд. нет +
        {                                       // критерий откр. Sell
        Print("Попытка открыть ордер. Sell");
         RefreshRates();                        // Обновление данных
         SL=Ask + StopLoss*Point;     // Вычисление SL откр.
         TP=Ask - TakeProfit*Point;   // Вычисление TP откр.
         Print("SL ",SL," == Bid ",Bid," + StopLoss == ", StopLoss, " * Point ==",Point);
         Print("TP ",TP," == Bid ",Bid," - TakeProfit == ", TakeProfit," * Point ==",Point);
         Print("Попытка открыть Sell. Ожидание ответа..", "| SL == ",NormalizeDouble(SL,Digits),"| TP == ",NormalizeDouble(TP,Digits));
         MyTicket=OrderSend(Symbol(),OP_SELL,0.1,Bid,2,NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits));//Открытие Sel ,counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Sell ",MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_SELL == ", Fun_Erorr);
            }             
         }
 
atwas:
30 и 31 марта 2013 года провели 2-х дневную конференцию «Все секреты выигрышных ставок». Все остались довольны. 5 марта выложим на Канале в ютуб stavkana1000000. Программа: 5. Изучение совпадений. 6. Выявление последовательностей. 7. Выделяем резерв – Банк. 8. Рассчитываем при среднем КЭФе ставку. Вводи в любом поисковике stavkana1000000 и бери стратегию ставки на спорт (футбол) совершенно бесплатно. Или приходи на онлайн-конференции, которые проводятся каждую субботу бесплатно. Андрей Игрок.

Эй! С какого казино свалился?! Вечный бан игроку!
Причина обращения: