Обсуждение статьи "Как построить советник, работающий автоматически (Часть 09): Автоматизация (I)"

 

Опубликована статья Как построить советник, работающий автоматически (Часть 09): Автоматизация (I):

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

На видео можно увидеть демонстрацию этой системы в действии. Для тех, кто представляет себе, что это что-то совсем другое или даже нефункциональное, вы можете посмотреть видео и сделать свои собственные выводы. Однако лучше всего понять, что происходит, скомпилировать советника и провести собственное тестирование на DEMO-счете. Таким образом, понимание всей системы станет более прочным и ясным.


Автор: Daniel Jose

 
Привет, Даниэль, меня зовут Роберта, как мне активировать этот советник в метатрейдере, вы можете мне помочь?
 
robertamega #:
Здравствуйте, Даниэль, меня зовут Роберта, как мне активировать этот советник в metatrader, вы можете мне помочь?

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

Одна деталь: чтобы советник работал, на платформе должна быть включена функция Algo Trading:

<< Algo Trading disabled ;

<< Algo Trading enabled;

 

Дани, я не знаю, как компилировать, я не знаю много о программировании, я только начал эту систему metatrader, вы можете помочь мне?





Daniel Jose #:

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

Одна деталь: чтобы система работала, на платформе должен быть включен режим Algo Trading:

<< Algo Trading disabled ;

<< Algo Trading enabled;

 
robertamega #:

Дани, я не знаю, как компилировать, я не знаю много о программировании, я только начал эту систему metatrader, вы можете помочь мне?





В этом случае я могу предложить вам плейлист, который я собираю на YOUTUBE. Он очень простой, но предназначен именно для тех, кто только начинает. Видео будут короткими и сфокусированными на определенной теме, но всегда ориентированными на новичка в MetaTrader. Посмотрите, возможно, это поможет вам сделать первые шаги. Но будьте осторожны с тем, что вы на самом деле размещаете на платформе, поскольку вы будете работать со своим брокерским счетом и использовать реальные деньги... Я просто говорю ВНИМАНИЕ...

Ссылка на плейлист: https: //www.youtube.com/watch?v=Q5rgggKuUY4&amp; list=PLpkiMqQzUzgA3fgPE1D-ZcjnEKVwgEg8z

Tutor 01
Tutor 01
  • 2022.12.24
  • www.youtube.com
Para melhor visualização utilize dispositivos com resolução Full HD.Esta será uma pequena sequencia de vídeos voltadas para explicar como operar usando o Me...
 

Добрый день, Даниил,

Во-первых, спасибо, что делитесь своими знаниями, они мне очень помогают!

У меня есть вопрос о том, как торговый сервер понимает ордера стоп и тейк-профит, считаются ли они отдельными ордерами или являются частью одной "структурированной позиции"? Другими словами, когда позиция закрывается, торговый сервер всегда удаляет SL и TP или мне следует беспокоиться о бесхозных ордерах?

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

Будьте здоровы

 
Mackilem тейк-профит, считаются ли они отдельными ордерами или являются частью одной "структурированной позиции"? Другими словами, когда позиция закрывается, торговый сервер всегда удаляет SL и TP или я должен беспокоиться о бесхозных ордерах?

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

Будьте здоровы

Сомнения - это часть дела. Нет ничего постыдного в том, чтобы спрашивать. Стыдно поддерживать сомнения и распространять информацию без знаний.

Но давайте пойдем по частям. Давайте сначала разберем одну ситуацию, а потом другую.

->Когда вы выставляете ордер на сервере или открываете позицию, вы можете сделать это двумя способами: Когда вы отправляете ордер с уже установленными стопом и тейком на открываемом ордере или позиции. В этом случае вы только отправляете запрос на сервер. Если вы не установили стоп или тейк в ордере, вы можете сделать это позже, изменив настройки. В любом случае на сервере у вас будет только один ордер или позиция. Это то, что многие называют OCO-ордером. Другими словами, когда стоп или тейк будет выполнен, позиция будет закрыта, и все будет так, как вы, вероятно, уже знаете, когда речь идет об OCO-ордерах. Думаю, у вас нет никаких сомнений на этот счет.

->Сейчас у нас есть проблема, которую я уже рассматривал в этой же серии статей. Ордер или позиция OCO не означает, что ваши Take или Stop не будут пропущены. Они будут исполнены только в том случае, если сделка произойдет по этой конкретной цене. Чтобы предотвратить пропуск ордера, некоторые программисты не используют ордера OCO, а поступают немного иначе. Именно это нечто иное и приводит к появлению "хромых ног", то есть вы получаете ордер, занесенный в книгу, но он не покрывается никаким другим ордером. В этом случае мы используем как минимум два ордера для контроля позиции. Таким образом, мы избегаем пропущенного стопа, потому что даже если цена пропустит ордер OCO, она не пропустит ордер в книге, который находится там именно для того, чтобы закрыть открытую позицию в MARRA... Однако это не работает на счете типа HEDGING, потому что такие счета позволяют вам держать позицию на покупку и продажу одновременно, по одному и тому же активу. Это почти как БИНАРНЫЙ ОПЦИОН ... Но когда эта техника использования двух ордеров выполняется на счете NETTING, позиция закрывается. Но вы должны быть осторожны, чтобы не оставить в книге свободный ордер.

Чтобы понять это, вам действительно нужно прочитать все 15 статей цикла и опробовать автоматическую систему, которую я демонстрирую. Но делайте это на демо-счетах, как на FOREX, так и на фондовом рынке. Тогда вы действительно поймете, о чем я говорю. Не пытайтесь понять это, просто представляя, как это должно или может работать. Протестируйте систему на демо-счетах, как на FOREX, где используются HEDGING-счета, так и на BOLSA, где используются NETTING-счета... 😁👍

 
Daniel Jose #:

Сомнения - часть этого. Нет ничего постыдного в том, чтобы спрашивать. Стыдно поддерживать сомнения и распространять информацию без знаний.😁

Но давайте действовать по частям. Давайте сначала разберемся в одной ситуации, а потом в другой.

->Когда вы выставляете ордер на сервере или открываете позицию, вы можете сделать это двумя способами: Когда вы отправляете запрос с уже установленными стопом и тейком на открываемом ордере или позиции. В этом случае вы только отправляете запрос на сервер. Если вы не установили стоп или тейк в ордере, вы можете сделать это позже, изменив настройки. В любом случае на сервере у вас будет только один ордер или позиция. Это то, что многие называют OCO-ордером. Другими словами, когда стоп или тейк будет выполнен, позиция будет закрыта, и все будет так, как вы, вероятно, уже знаете, когда речь идет об OCO-ордерах. Думаю, у вас нет никаких сомнений на этот счет.

->Сейчас у нас есть проблема, которую я уже рассматривал в этой же серии статей. Ордер или позиция OCO не означает, что ваши Take или Stop не будут пропущены. Они будут исполнены только в том случае, если сделка произойдет по этой конкретной цене. Чтобы предотвратить пропуск ордера, некоторые программисты не используют ордера OCO, а поступают немного иначе. Именно это нечто иное и приводит к появлению "хромых ног", то есть вы получаете ордер, занесенный в книгу, но он не покрывается никаким другим ордером. В данном случае мы используем как минимум два ордера для контроля позиции. Таким образом, мы избегаем пропущенного стопа, потому что даже если цена пропустит ордер OCO, она не пропустит ордер в книге, который находится там именно для того, чтобы закрыть открытую позицию в MARRA... Однако это не работает на счете типа HEDGING, потому что такие счета позволяют вам держать позицию на покупку и продажу одновременно, по одному и тому же активу. Это почти как БИНАРНЫЙ ОПЦИОН ... Но когда эта техника использования двух ордеров выполняется на счете NETTING, позиция закрывается. Но вы должны быть осторожны, чтобы не оставить в книге свободный ордер.

Чтобы понять это, вам действительно нужно прочитать все 15 статей цикла и опробовать автоматическую систему, которую я демонстрирую. Но делайте это на демо-счетах, как на FOREX, так и на фондовом рынке. Тогда вы действительно поймете, о чем я говорю. Не пытайтесь понять это, просто представляя, как это должно или может работать. Протестируйте систему на демо-счетах, как на FOREX, где используются HEDGING-счета, так и на BOLSA, где используются NETTING-счета... 😁👍


Спасибо большое за ваше объяснение. Теперь я все понял.

Да, я только что закончил читать все статьи и скоро начну тестировать.


Спасибо

 

Здравствуйте, я следил и внедрял ваш советник, но столкнулся с ошибкой, до которой не могу докопаться. Можете ли вы помочь с ошибками. Ошибки следующие:


'C_ManagerAce.mqh' C_ManagerAce.mqh

'C_Orders.mqh' C_Orders.mqh

'C_Terminal.mqh' C_Terminal.mqh

'C_Terminal::GetTerminalInfos' - невозможно получить доступ к частной функции-члену C_ManagerAce.mqh

см. объявление функции 'C_Terminal::GetTerminalInfos' C_Terminal.mqh

'C_Terminal::FinanceToPoints' - невозможно получить доступ к частной функции-члену C_ManagerAce.mqh

см. объявление функции 'C_Terminal::FinanceToPoints' C_Terminal.mqh

'C_Terminal::GetTerminalInfos' - невозможно получить доступ к частной функции-члену C_ManagerAce.mqh

см. объявление функции 'C_Terminal::GetTerminalInfos' C_Terminal.mqh

'C_Terminal::FinanceToPoints' - невозможно получить доступ к частной функции-члену C_ManagerAce.mqh

см. объявление функции 'C_Terminal::FinanceToPoints' C_Terminal.mqh

'C_Terminal::GetTerminalInfos' - невозможно получить доступ к частной функции-члену C_ManagerAce.mqh

см. объявление функции 'C_Terminal::GetTerminalInfos' C_Terminal.mqh


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


 
kinghussle #:

Здравствуйте, я следил и внедрял ваш советник, но столкнулся с ошибкой, до которой не могу докопаться. Можете ли вы помочь с ошибками. Ошибки следующие:


'C_ManagerAce.mqh' C_ManagerAce.mqh

'C_Orders.mqh' C_Orders.mqh

'C_Terminal.mqh' C_Terminal.mqh

'C_Terminal::GetTerminalInfos' - невозможно получить доступ к частной функции-члену C_ManagerAce.mqh

см. объявление функции 'C_Terminal::GetTerminalInfos' C_Terminal.mqh

'C_Terminal::FinanceToPoints' - невозможно получить доступ к частной функции-члену C_ManagerAce.mqh

см. объявление функции 'C_Terminal::FinanceToPoints' C_Terminal.mqh

'C_Terminal::GetTerminalInfos' - невозможно получить доступ к частной функции C_ManagerAce.mqh

см. объявление функции 'C_Terminal::GetTerminalInfos' C_Terminal.mqh

'C_Terminal::FinanceToPoints' - невозможно получить доступ к частной функции-члену C_ManagerAce.mqh

см. объявление функции 'C_Terminal::FinanceToPoints' C_Terminal.mqh

'C_Terminal::GetTerminalInfos' - невозможно получить доступ к частной функции C_ManagerAce.mqh

см. объявление функции 'C_Terminal::GetTerminalInfos' C_Terminal.mqh


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

Ошибки, о которых вы сообщаете, связаны с попыткой получить доступ к чему-то приватному для класса, вне тела класса. Я предлагаю вам сначала начать с чего-то более простого. Для этого сначала попробуйте понять, что такое клаузулы private и public. Но главным образом, зачем использовать то или другое.

 
Привет, Даниил, добрый вечер! Поздравляю со статьями, это отличный учебный материал. Не думаете ли вы записать эти уроки для YouTube? Я бы с удовольствием посмотрел.