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

 
borilunad:
Конечно, в учебнике и документации, а готовенькое можете достать в Работа   Или намериваетесь управляться советником без знания языка? Очень рискованно и безрассудно, а если много денег, покупайте лотерею, выйдет выгодней и учиться не надо!

Интересно, зачем тогда вообще создавать форум, если на все вопросы можно ответить, что все есть в учебнике и в документации? Что же я намерена делать с советником и как управлять -- со знанием языка или без, уж извините, это моё личное дело. Советы покупать лотерею, также как и другие из той же серии оставьте при себе. 
 
Magnifique:

Интересно, зачем тогда вообще создавать форум, если на все вопросы можно ответить, что все есть в учебнике и в документации? Что же я намерена делать с советником и как управлять -- со знанием языка или без, уж извините, это моё личное дело. Советы покупать лотерею, также как и другие из той же серии оставьте при себе. 

Форум создан для обсуждения вопросов программирования, а Вам хочется подсказки, которая Вам сослужит плохую службу, т.к., повторюсь, без знаний Вам даже распрекрасный советник без ежедневной отладки, подстройки и поисков, подходящих для постоянно изменяющихся условий рынка, решений в один печальный для Вас день сольёт депо. Конечно, на форуме помогают новичкам, когда они уже сделали что-то и испытывают затруднения, но не по ленности, а по проблемам, возникшим в процессе программирования. Так что "без труда.. " и без знаний никуда!

 
Magnifique:

Интересно, зачем тогда вообще создавать форум, если на все вопросы можно ответить, что все есть в учебнике и в документации? Что же я намерена делать с советником и как управлять -- со знанием языка или без, уж извините, это моё личное дело. Советы покупать лотерею, также как и другие из той же серии оставьте при себе. 

Виктория, вы поставили себе сполне нормальную задачу, чтобы освоить написание советников. Начинайте самостоятельно и выкладывайте по ходу дела код, который у Вас получается вместе с вопросами, а остальные помогут. Данная ветка существует, прежде всего, для этого; более того, именно с такими новичками приятнее всего общаться. Давайте поддерживать учебную атмосферу.

 
Скажите есть ли такой модуль или как его назвать к МТ4 что бы можно было полученные параметры после оптимизации автоматом загружать и проверять на незнакомом участке. То есть автопоиск лучших параметров среди найдены оптимизатором, как в МТ5 сначала оптимизируется а потом уже ищет среди них лучшие
 
T-G:
Скажите есть ли такой модуль или как его назвать к МТ4 что бы можно было полученные параметры после оптимизации автоматом загружать и проверять на незнакомом участке. То есть автопоиск лучших параметров среди найдены оптимизатором, как в МТ5 сначала оптимизируется а потом уже ищет среди них лучшие
Точно уже и не вспомню, но поробуйте поиском по "автооптимизатор" и "testcommander"
 
 Почему, скрипт в терминале выполняется иной раз с появлением окна, "хотите ли вы присоединить скрипт к данному графику", хотя обычно такое окно при выполнение скрипта не появляется... ?
 

День добрый!

не могу решить такую задачку:

          if (Minute()>0 && Minute()<30)
         {m=Minute();}
         if (Minute()>30 && Minute()<60)
         {m=Minute()-30;}
         if (Minute()==0 || Minute()==30)
         {m=0;}
         price=iOpen(Symb, timeP4, m);
         price_1=iOpen(Symb, timeP4, m+30);

 так вот, при работе советника, он берет данные то с нулевого бара (который мне нужен), то с соседнего. Иногда выдает тот самый тридцатый (который мне нужен), то 29, то 32, то 34...соответственно и цены берет с этих баров.

Подскажите, возможно ли указать советнику конкретный бар, с которого мне нужно взять цену не пересчетом смещения баров, а указав ему время?

Спасибо. 

 
Egori4:

День добрый!

не могу решить такую задачку:

 так вот, при работе советника, он берет данные то с нулевого бара (который мне нужен), то с соседнего. Иногда выдает тот самый тридцатый (который мне нужен), то 29, то 32, то 34...соответственно и цены берет с этих баров.

Подскажите, возможно ли указать советнику конкретный бар, с которого мне нужно взять цену не пересчетом смещения баров, а указав ему время?

Спасибо. 


Должно помочь
 

Здравствуйте всем...

Помогите со следующей проблемкой ...

существует 3 MA, Когда происходит заранее описанная ситуация например (MA1>MA2 && MA2<MA3) происходит покупка или продажа, также я записываю это в коммент.

double MA1 = NormalizeDouble(iMA(NULL,PERIOD_M5,period_1,0,0,0,0),5);
double MA2 = NormalizeDouble(iMA(NULL,PERIOD_M5,period_2,0,0,0,0),5);
double MA3 = NormalizeDouble(iMA(NULL,PERIOD_M5,period_3,0,0,0,0),5);

if(ptm5!=pt1m5 && ptm5=="123")
    {
      OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);
           if(OrderOpenTime()<Time[3])
              {
              if (MA1>MA2 && MA2<MA3)tochka="123"; 
                  TimeBar=Time[0];
                   OrderSend(Symbol(),OP_BUY, LOT,NormalizeDouble(Ask,Digits),3,Bid-SL*Point,Ask+TP*Point,tochka,Magic,0,Blue);
              }
   }

Но в конце эксперта перед завершением я всё записываю в csv файл. 

Handle1=FileOpen("Points"+Symbol()+a+".csv",FILE_CSV |FILE_WRITE|FILE_READ,';');
FileSeek(Handle1,0,SEEK_SET);

for (int i=1; i<=OrdersHistoryTotal(); i++)       //Цикл по всем ордерам,..
     {                                        //отражённым в терминале
      if(OrderSelect(i-1,SELECT_BY_POS,MODE_HISTORY)==true)//Если есть следующий
        {    
    string var1=TimeToStr(OrderOpenTime(),TIME_DATE|TIME_MINUTES);
     string var2=TimeToStr(OrderCloseTime(),TIME_DATE|TIME_MINUTES);
     string varr;
        if (OrderType()==OP_BUY)varr="buy";else varr="sell";
      double oroppr1,orclpr1;
      oroppr1=OrderOpenPrice();
      orclpr1=OrderClosePrice();
      string oroppr=DoubleToStr(oroppr1, 4);
      string orclpr=DoubleToStr(orclpr1, 4);
  
      datetime some_time1, some_time2;   
      some_time1=StrToTime(var1);
      some_time2=StrToTime(var2);     
      int shift1=iBarShift(Symbol(),0,some_time1);
      int shift2=iBarShift(Symbol(),0,some_time2);
      
      int shift3=iBarShift(Symbol(),PERIOD_M5,some_time1);


double MA01 = NormalizeDouble(iMA(NULL,PERIOD_M5,period_1,0,0,0,shift3),5);
double MA02 = NormalizeDouble(iMA(NULL,PERIOD_M5,period_2,0,0,0,shift3),5);
double MA03 = NormalizeDouble(iMA(NULL,PERIOD_M5,period_3,0,0,0,shift3),5);

if (MA01>MA02 && MA02<MA03)pt0="123";
FileWrite(Handle1,var1,var2,varr,OrderSymbol(),OrderTicket(),OrderLots(),oroppr,orclpr,OrderTakeProfit(),OrderStopLoss(),OrderProfit(),OrderComment(),max,min,g,pt0,g,a,b);
        }
     }                                  
     FileClose(Handle1);   

 Из кода видно, что я беру дату и время открытия ордера, ищу бар, и записываю для этого бара значения всех MA;

И Сама суть проблемы данные комента иногда не совпадают с записанными данными... (причём только для своего timeframe)

comment="123" pt0="213";

 PS. bool exact=false 

 Я менял эти значения и на false и на true, результат такойже.

PS2. Любителям придираться к  запятым и к скобкам. Мог что-то и пропустить так как код большой, взял только необходимое.

 

Рискну повторить свой вопрос:

Такой вопрос. Советник открывает ордер, устанавливая определенное значение magic. Затем MetaTrader закрывается. Есть ли возможность после повторного открытия MT (или, что то же самое) при открытии MT на другой машине восстановить magic? Только что столкнулся: был открыт ордер, после чего добрый дядя из ДЦ перегрузил виртуалку. В результате: все расчеты в топку.


То есть, суть вопроса: сохраняются ли magic'и после закрытия терминала/эксперта и можно ли их как-то восстановить?

Причина обращения: