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

 

Можно конечно проверить самому, но возможно кто-то быстро ответит.

Если я имею массив m[] с текущим количеством уже сформированных элементов, скажем, 10,

а потом говорю

ArrayResize(m, 15)

первоначальные 10 элементов массива сохранят свои значения ?

--------------------------------------------------------------------------

Все, проверил - значения сохраняются.


 
more:

Можно конечно проверить самому, но возможно кто-то быстро ответит.

Если я имею массив m[] с текущим количеством уже сформированных элементов, скажем, 10,

а потом говорю

ArrayResize(m, 15)

первоначальные 10 элементов массива сохранят свои значения ?

--------------------------------------------------------------------------

Все, проверил - значения сохраняются.


а с чего ты указываешь 15??? нужно 10
 
Имеется несколько технических вопросов по МТ.

1. Экспорт данных. С DDE и сохранением архива котировок все ясно. Интересует выгрузка определенных котировок определенного интервала за определенный период с помощью встроенного языка. Я так понимаю, это делается с помощью скриптов. На данном сайте нашел примеры скриптов по выгрузке данных.

Вопрос: чтобы скрипт выполнялся автоматически (в данном случае выгрузка), необходимо создать советника, который и будет выполнять этот скрипт?

2. Код скриптов и пр. видимо хранится в *.mq4, а *.ex4 - это наверно скомпилированный файл. Хочется следующей возможности: при необходимости изменить код скрипта любым текстовым редактором - и чтобы МТ выполнял уже измененный скрипт. Если предположение относительно *.mq4 и *.ex4 верно, можно ли выполнить компиляцию не интерфейсными методами и передать в МТ на выполнение измененный скрипт?

3. Интересует импорт\экспорт транзакций через файл и через библиотеку - есть ли такая возможность (аналогично функционалу в QUIK)? Явного указания на такую возможность не нашел. Неужели для этого нужно организовывать обмен через файл своего формата: советник читает и разбирает файл, в зависимости от содержимого выполняет транзакции? Если это возможно, есть ли примеры?


4. Ну и есть ли синтакс-помощник по языку MetaQuote?


Заранее спасибо за помощь!
 
Mopo3:
Имеется несколько технических вопросов по МТ.

1. Экспорт данных. С DDE и сохранением архива котировок все ясно. Интересует выгрузка определенных котировок определенного интервала за определенный период с помощью встроенного языка. Я так понимаю, это делается с помощью скриптов. На данном сайте нашел примеры скриптов по выгрузке данных.

Вопрос: чтобы скрипт выполнялся автоматически (в данном случае выгрузка), необходимо создать советника, который и будет выполнять этот скрипт?

2. Код скриптов и пр. видимо хранится в *.mq4, а *.ex4 - это наверно скомпилированный файл. Хочется следующей возможности: при необходимости изменить код скрипта любым текстовым редактором - и чтобы МТ выполнял уже измененный скрипт. Если предположение относительно *.mq4 и *.ex4 верно, можно ли выполнить компиляцию не интерфейсными методами и передать в МТ на выполнение измененный скрипт?

3. Интересует импорт\экспорт транзакций через файл и через библиотеку - есть ли такая возможность (аналогично функционалу в QUIK)? Явного указания на такую возможность не нашел. Неужели для этого нужно организовывать обмен через файл своего формата: советник читает и разбирает файл, в зависимости от содержимого выполняет транзакции? Если это возможно, есть ли примеры?

4. Ну и есть ли синтакс-помощник по языку MetaQuote?

Заранее спасибо за помощь!

1. Можно это делать откуда угодно (скрипт, эксперт, индикатор).

2. Можно, но зачем? Всё можно реализовать прям в коде MQL4.

3. Можно. Примеров в копилке сколько угодно и не только через файл.

4. F1. https://docs.mql4.com/ru/

 
А также кнопка F1 в Едиторе)
 
alsu:
А также кнопка F1 в Едиторе)
Так её имел ввиду :-))
 
Zhunko:
Так её имел ввиду :-))

эээээээх Тяжело в понедельник

 
Zhunko:

1. Можно это делать откуда угодно (скрипт, эксперт, индикатор).

2. Можно, но зачем? Всё можно реализовать прям в коде MQL4.

3. Можно. Примеров в копилке сколько угодно и не только через файл.

4. F1. https://docs.mql4.com/ru/


1. Ясно, буду изучать язык.

2. Простой пример: сторонняя МТС, в которой происходит выбор инструментов, ТФ и пр. Она же будет запрашивать котировки у МТ, т.е. в данном случае изменять код скрипта выгрузки данных (никакой внешней библиотеки для подключения в стороннем приложении для управления МТ я пока не нашел). МТ должен будет скомпилировать измененный код и поставить на выполнение.

Я так понимаю, вопрос автоматической компиляции и выполнения искать на https://docs.mql4.com/ru/?

3. Наверно плохо искал. Мне показалось, что все примеры иллюстрируют именно принятие решений на стороне МТ на основе анализа данных.

4. За https://docs.mql4.com/ru/ большое спасибо. А вот F1 вряд ли можно назвать синтакс-помощником :)

 

К сожалению автор этого когда отошел от дел -поэтому спрашиваю у вас профи-у меня после убыточной сделки открывает,только одну сделку лот *2 - и то ордера у меня иногда отменяются - по истечении времени -они все отложные и часто не доходит до открытия сделок лот*2 я думаю это потому что после открытия этой сделки мы сохраняем баланс после работыbalance_before = balance_after; и для функции уже следующая сделка,идет обычная, подскажите -что нужно поменять или исправить - что бы

открывался лот*2 пока не отработает ордер,либо открывался пока не перекроет убыток- заранее благодарен за ответ ! с Уважением Сергей.


В качестве параметров передавайте начальный объем (double lot), и шаг (double x).
Вставляйте метод прямо в OrderSend вместо параметра volume.

Пример вызова функции://+------------------------------------------------------------------+

double getMartinLot(double lot, double x){         //ФУНКЦИЯ УПРАВЛЕНИЯ ОБъЕМОМ ТОРГОВ ПО СИСТЕМЕ МАРТИНГЕЙЛА
   static double balance_before, balance_after;    //ДЛЯ ХРАНЕНИЯ СОСТОЯНИЯ БАЛАНСА ДО И ПОСЛЕ СДЕЛОК
   static double save_Lot;
   balance_after = AccountBalance();               //СОХРАНЕНИЕ ТЕКУЩЕГО СОСТОЯНИЯ БАЛАНСА
   if(balance_after >= balance_before){            //ПРОВЕРКА ИЗМЕНЕНИЯ БАЛАНСА
      save_Lot = lot;                              //ЕСЛИ ОН НЕ ИЗМЕНИЛСЯ ИЛИ СТАЛ БОЛЬШЕ, ТО СБРАСЫВАЕМ ЛОТ ДО БАЗОВОГО
   }else{
      save_Lot *= x;                               //ЕСЛИ СТАЛ МЕНЬШЕ ТО УВЕЛИЧИВАЕМ ЛОТ НА Х РАЗ
   }
   balance_before = balance_after;                 //СОХРАНЯЕМ СОСТОЯНИЕ БАЛАНСА ПОСЛЕ РАБОТЫ
   return(save_Lot);
}
//+------------------------------------------------------------------+

В качестве параметров передавайте начальный объем (double lot), и шаг (double x).
Вставляйте метод прямо в OrderSend вместо параметра volume.

Пример вызова функции:

if(OrdersTotal() == 0){
   OrderSend(Symbol(), OP_BUY, getMartinLot(0.1, 2), Ask, 10, Bid-25*Point, Bid+25*Point);
}

 
Mopo3:


1. Ясно, буду изучать язык.

2. Простой пример: сторонняя МТС, в которой происходит выбор инструментов, ТФ и пр. Она же будет запрашивать котировки у МТ, т.е. в данном случае изменять код скрипта выгрузки данных (никакой внешней библиотеки для подключения в стороннем приложении для управления МТ я пока не нашел). МТ должен будет скомпилировать измененный код и поставить на выполнение.

Я так понимаю, вопрос автоматической компиляции и выполнения искать на https://docs.mql4.com/ru/?

3. Наверно плохо искал. Мне показалось, что все примеры иллюстрируют именно принятие решений на стороне МТ на основе анализа данных.

4. За https://docs.mql4.com/ru/ большое спасибо. А вот F1 вряд ли можно назвать синтакс-помощником :)

2. Не пойму никак, зачем что-то на ходу компилировать? Сделайте набор скриптов готовых и запускайте, если не умеете управлять параметрами скрипта извне.

Мне удаётся управлять МТ4 из консольного приложения. Использую библиотеку классов на базе, которой постороена эта библиотека.

4. Если чего не понятно в коде, ставите курсор на то, что не понятно и нажимаете F1. Вот такой синтакс-помощник.

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