[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 512

 
LazarevDenis:
Подскажите пожалуйста, можно ли в mql4 записывать некоторый текст в файл, например *.txt, а потом извлекать эти данные для торговли, идея состоит в том, чтобы советник сам учился торговать, когда цена за пару баров меняется на >100*Point, то советник бы запомнил эти значения и потом попытался использовать их (значение индикатора +/- n%, для открытия ордера), это можно было бы реализовать и в советнике, но после закрытия MetaTradera вроде обнуляются все значения переменных
Глобальные переменные можно использовать.
 
не мог бы кто-нибудь протестировать мой советник и сказать его достоинства и недостатки?
Файлы:
 

помогите написать ф-цию, которая выполняла бы опредиленное действие если допустим, 10 последних раз позиции закрылись в минус

Заранее спасибо
 
Kreol:
Да-да, понял я вас ... но перед тем как отдавать свои кровные хотелось бы убедиться, что нужного мне скрипта точно нету в свободном доступе
Скриптов в базе как собак нерезаных. Вы неправильно ставите вопрос. Универсальный скрипт, даже если Вам его сделают, окажется неудобным, и Вы его выбросите.
Скрипты как правило предназначены для выполнения простого однородного действия. Оптимально использовать набор скриптов, каждый из которых привязан к своей горячей клавише.
Например:

Скрипт
Клавиша
Скрипт открытия BuyCtrl+B
Скрипт открытия SellCtrl+S
Скрипт реверса ReversCtrl+R
Скрипт закрытия Close
Ctrl+C

И так далее.
Готовые соответствующие скрипты можно найти в базе поиском, запросы в гугле типа скрипт для реверса site:mql4.com

 
nuan:

помогите написать ф-цию, которая выполняла бы опредиленное действие если допустим, 10 последних раз позиции закрылись в минус

Заранее спасибо

не сложно подсчитать в цикле количество последних, закрытых в убытке ордеров. Но как же написать код который выполнит непонятно какое действие?
 
нужен код, который посчитает
 
Здравствуйте! Вопос такой.. От обилия условий входа и вспомогательных функций, а так же внешних переменных типа extern double, советник может тормозить? Просто в тестере мистика какая-то.. 1ый робот где всё скрыто в коде, делает больше просадки, чем тот робот, где всё выведено в extern double.. хотя у обоих параметры переменных одинаковые. (да и сами они одинаковы)
 
Shniperson:
Здравствуйте! Вопос такой.. От обилия условий входа и вспомогательных функций, а так же внешних переменных типа extern double, советник может тормозить? Просто в тестере мистика какая-то.. 1ый робот где всё скрыто в коде, делает больше просадки, чем тот робот, где всё выведено в extern double.. хотя у обоих параметры переменных одинаковые. (да и сами они одинаковы)


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

Кроме этого сравните их этой прогой в поиске гляньте - скачайте - WinMergeU.exe.

 

Скачал отсюда https://www.mql5.com/ru/code/9274

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

 
nuan:
нужен код, который посчитает


Ну это не сложно. Пишем подпрограмму:

// этот код будет работать корректно только если в истории отсутствуют отложенные ордера.
int SchLossOrders(){
  string SMB=Symbol();
  int Sch=0;
  int i;
  for (i=OrdersHistoryTotal()-1;i>=0;i--){
    if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { Print("Ошибка ",GetLastError()," при выборе ордера");}
    else {
      if(OrderProfit()<0 && (OrderType()==OP_BUY || OrderType()==OP_SELL)){
        Sch++;
      }
      else{
        return(Sch);
      }
    }
  }
 return(Sch);     
}

В старте советника пишем:

if(SchLossOrders()>=10){
  // 10 последних сделок были убыточными - выполняем какое-то действие
}
Причина обращения: