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

 
dixi:

После переустановки терминала перестал работать MetaEditor. Комилирует только в случае, если не изменяешь ничего в коде индикатора. Если что-то изменил, даже хотя бы цвет линии, выдает ошибку:

ОС Windows 7. Может кто-то сталкивался с подобным глюком. Подскажите, что делать?


Во первых, войти в свойства терминала и на вкладке "Совместимость" поставить галку "Выполнять от имени администратора". Во вторых, то же самое сделать с файлом, который запускает редактор кода. Это файл - "MetaEditor.exe". В третьих - настроить операционную систему под себя, а не юзать то, что поставил "дядя". Последний пункт осваивается довольно быстро, если знаешь, чего именно тебе нужно.
 
demlin:

Приветствую всех!

Прошу помочь с такой проблемой: не могу заставить индикатор перерисовываться с появлением нового бара (интервал Д). П

риходится перезапускать его вручную.


Строка 44 абсолютно не нужна. Вызов функции пересчёта непрсчитанных свеч вернёт их все. Далее в коде функции старта вызов той же самой функции (строка 64) вернуть должен по идее ноль. Обрати на это внимание. Пришёл новый день (новая свеча). непонятно что происходит - отключение индикатора вчера и новый запуск сегодня, или это тестирование в тестере? При перезапуске сработает функция инициализации, затем запустится старт. В старте ни чего не перерисуется, так как мы уже при запуске вызывали неподсчитанные бары. Если в тестере, то может и перерисуется.

 
FxPro2:
Привет всем! Мужики, наткнулся на старенького эксперта, работающего по индикатору asctrend, давно хотел проверить как себя ведет данный индикатор в режиме реального времени, но уследить за точками не всегда получается, и картина торговли получается не полной. Проверил на тестере, сигнал есть при каждом появлении точки, но поставил на демо и заметил такую вещь, что на демке пропускает сигналы, хотя в журнал ничего не пишет эксперт, ковырялся в коде так и не понял в чем загвоздка :( может кто ткнет носом в чем может быть проблема?

Загвоздка в том, что Вы не понимаете код, который используете. Загвоздка в том,что Вы взяли в руки автомат и он почему-то не всегда стреляет. Может лучше брать в руки то устройство, работу которого Вы понимаете от и до? А?
 
drknn:

Во первых, войти в свойства терминала и на вкладке "Совместимость" поставить галку "Выполнять от имени администратора". Во вторых, то же самое сделать с файлом, который запускает редактор кода. Это файл - "MetaEditor.exe". В третьих - настроить операционную систему под себя, а не юзать то, что поставил "дядя". Последний пункт осваивается довольно быстро, если знаешь, чего именно тебе нужно.
Спасибо! Получилось!!! :)))
 
Dimka-novitsek:

if (NormalizeDouble(OrderClosePrice()-OrderTakeProfit(), Digits)<0.5*Point)

Да просто вариант без нормализе дубле, не так надежен, если сравнивать с нолём. Тут работает.


Речь не о ND. point это размер пункта, умножим его на ноль пять это будет к примеру 0,00005, не вижу смысла сравнивать это число с OrderClosePrice()-OrderTakeProfit(). TP не гарантирует ровно такую же цену закрытия. Плюс для баев и селов будут разные условия проверки

if(OrderType() == OP_SELL)
       {
        if( NormalizeDouble(OrderTakeProfit()-OrderClosePrice(),Digits) >= 0
          && OrderTakeProfit() != 0)    

Такая конструкция несколько надежнее.

 
drknn:

Загвоздка в том, что Вы не понимаете код, который используете. Загвоздка в том,что Вы взяли в руки автомат и он почему-то не всегда стреляет. Может лучше брать в руки то устройство, работу которого Вы понимаете от и до? А?
Может. Только Ваших два поста последних в нибытие, одни нравоучения, а лучше бы натолкнули на нужную мысль. Если такое желание отсутствует, зачем писать лишнего? Я никого не заставлял мне помогать, если нет желания, я не обижусь, работа сложная, я это прекрасно понимаю.
 
drknn:
Ребята с длинными кодами! Хочу ещё раз повторить, что чужой код - это прежде всего криптограмма, которую ещё предстоит расшифровать! А это труд и не малый! Думаете кому-то из программеров захочется копаться в километрах листинга? Давайте я дам свой код кому-то из вас, всего-то на тройку тысяч строк и попрошу устранить небольшое недоразумение этого кода. Думаете вы просто так захотите вникать в моё детище? Опять сомневаюсь. Поэтому у меня к вам пожелание - задавая ключевой вопрос, описывайте проблему максимально кратко и вместе с тем описание делайте достаточным для понимания сути. В противном случае ваш крик - это крик в пустоту. Код можно приложить к посту. Этого всего необходимо и достаточно.

Полностью солидарен с Вами.


FxPro2:

drknn:

Загвоздка в том, что Вы не понимаете код, который используете. Загвоздка в том,что Вы взяли в руки автомат и он почему-то не всегда стреляет. Может лучше брать в руки то устройство, работу которого Вы понимаете от и до? А?
Может. Только Ваших два поста последних в нибытие, одни нравоучения, а лучше бы натолкнули на нужную мысль. Если такое желание отсутствует, зачем писать лишнего? Я никого не заставлял мне помогать, если нет желания, я не обижусь, работа сложная, я это прекрасно понимаю.

Но ведь приведённый Вами ранее код Вы и правда не понимаете?

 

Всем здрасти!!! Помогите плиз, только учусь писать, передомной встала такая задача, не могу написать код, увеличения размера лота на определенный шаг задаваемый в праметрах, пересмотрел кучу советников так и смог разобраться, получилось увеличивать лот, только в зависимости от маржи. Посоветуйте куда глянуть, а то голову уже сломал. Спасибо!

 
SeALALex:

Всем здрасти!!! Помогите плиз, только учусь писать, передомной встала такая задача, не могу написать код, увеличения размера лота на определенный шаг задаваемый в праметрах, пересмотрел кучу советников так и смог разобраться, получилось увеличивать лот, только в зависимости от маржи. Посоветуйте куда глянуть, а то голову уже сломал. Спасибо!

Покажите Ваш код с условием, после которого нужно увеличивать лот на определённый шаг, задаваемый в параметрах, и как Вы это пытались реализовать.
 
Болк открытия на бай
if(Buy==true) 
  {Buy=false;

   ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),5,SL,TP,Order,070177,0,Orange);
   if(ticket>0)
    { 
     if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
      {Print("BUY order opened : ",OrderOpenPrice());
       Alert("Buy Order for ",Symbol());
       SendMail("Buy Order "+Symbol()+" "+Ask,SL);     
       }
     }
     else Print("Error opening BUY order : ",GetLastError()); 
     return(0); 
   }

Умножение лота в зависимости от маржи нашел в советнике, 
код вставил работает вот только в советнике он увеличивает на определенный шаг, у меня просто в %-ом соотношении

double LotSize() 
  
   {
   double lots_0;
   if (MicroLots == FALSE) {
      lots_0 = NormalizeDouble(AccountFreeMargin() * RiskPercent / 1000.0, 1);
      if (lots_0 < 0.1) lots_0 = Lots;
      if (lots_0 >= 1.0) lots_0 = NormalizeDouble(lots_0, 1);
      if (lots_0 >= 100.0) lots_0 = 100;
   } else {
      lots_0 = NormalizeDouble(AccountFreeMargin() * RiskPercent / 1000.0, 2);
      if (lots_0 < 0.01) lots_0 = Lots;
      if (lots_0 >= 1.0) lots_0 = NormalizeDouble(lots_0, 2);
      if (lots_0 >= 100.0) lots_0 = 100;
   }
   return (lots_0);
}
Вот как то так
Причина обращения: