테스터에서 지우기 - 페이지 5

 
JRandomTrader # :

하지만! FORTS에서 작업할 때 위치 데이터에 의존해서는 안 됩니다.

내 로봇은 거래를 추적하고 초기 포지션 개시 가격(마지막 청산 이후가 아님)을 기억하고 이로부터 이익, SL, ...

그건 그렇고, 포지션 데이터에 의존해서는 안 되는 또 다른 이유가 있습니다. FORTS 네팅에서 여러 로봇과 수동 거래가 하나의 기호에서 거래할 수 있습니다. 그리고 이 종합적인 위치에서 실질적으로 유용한 것은 무엇을 얻을 수 있습니까?

따라서 각 로봇은 자신의 포즈를 기억하고 "이끈"합니다.

 
JRandomTrader # :

나는 보여 주었다. 우리는 이 마지막 평균 가격과 포지션 거래량, 새로운 거래의 가격과 거래량을 취합니다. 모든 것이 올바르게 계산됩니다.

예, 예, 지금은 이해합니다 ... 나 자신에게 물은 후 - 이해했습니다 :-)
 
JRandomTrader # :

그건 그렇고, 포지션 데이터에 의존해서는 안 되는 또 다른 이유가 있습니다. FORTS 네팅에서 여러 로봇과 수동 거래가 하나의 기호에서 거래할 수 있습니다. 그리고 이 종합적인 위치에서 실질적으로 유용한 것은 무엇을 얻을 수 있습니까?

따라서 각 로봇은 자신의 포즈를 기억하고 "이끈"합니다.

고마워. 같은 장소에서 자연스럽게 이러한 모든 시장 거래와 자세가 조건부입니까? (한 방향으로)?
 
Roman Shiredchenko # :
고마워. 같은 장소에서 자연스럽게 이러한 모든 시장 거래와 자세가 조건부입니까? (한 방향으로)?

로봇은 추세에 따라 다른 전략을 가질 수 있고 반대는 다른 시간 프레임에서 작동할 수 있으므로 포즈가 모든 방향으로 있을 수 있습니다. 그리고 MT에서는 "일반"만 볼 수 있습니다.

 
JRandomTrader # :

로봇은 트렌드에 따라 다른 전략을 가질 수 있으며 다른 시간대에 작업할 수 있으므로 포즈가 어떤 방향으로든 움직일 수 있습니다. 그리고 MT에서는 "일반"만 볼 수 있습니다.

저것들. 실제로 각 방향의 거래에 대한 전용 계정을 유지할 수 있습니다. 그게 전부입니다 ... :-)

물론 어렵습니다 ... 모든 것이 가상입니다. 모든 장점과 단점이 있습니다. 장군 그 한 위치... Nettingovaya.

이것은 물론 조롱입니다. 이 모든 것이 하나의 악기에서 수행된다면 ...

 
Roman Shiredchenko # :

저것들. 실제로 각 방향의 거래에 대한 전용 계정을 유지할 수 있습니다. 그게 전부입니다 ... :-)

물론 어렵습니다 ... 모든 것이 가상입니다. 모든 장점과 단점이 있습니다. 장군 그 한 위치... Nettingovaya.

이것은 물론 조롱입니다. 이 모든 것이 하나의 악기에서 수행된다면 ...

그리고 몇 가지 옵션이 있습니다. 또는 기호당 하나의 "이상적인" 로봇 또는 다양화 - 여러 실제 로봇.

 
JRandomTrader # :

그리고 몇 가지 옵션이 있습니다. 또는 기호당 하나의 "이상적인" 로봇 또는 다양화 - 여러 실제 로봇.

한 가지 더 일반적인 점: 청산 후 총 포지션의 개시 가격 이전 외에 거래할 때 주의해야 하는 다른 "숨겨진" 함정이 있습니까?

실제로 수수료, 스왑이 있습니다. 볼 수 있다고 생각합니다. 네, 그리고 역사에 따르면 거래와 포지션을 계산할 수 있습니다... (이것은 거래 알고리즘의 조건에 따라 현재 포지션이나 그 부분이 플러스로만 커버되도록 하기 위한 것입니다!)

입찰 시 주의할 점은 무엇입니까?

 
Roman Shiredchenko # :

한 가지 더 일반적인 점: 청산 후 총 포지션의 개시 가격 이전 외에 거래할 때 주의해야 하는 다른 "숨겨진" 함정이 있습니까?

실제로 수수료, 스왑이 있습니다. 볼 수 있다고 생각합니다. 네, 그리고 역사에 따르면 거래와 포지션을 계산할 수 있습니다... (이것은 거래 알고리즘의 조건에 따라 현재 포지션이나 그 부분이 플러스로만 커버되도록 하기 위한 것입니다!)

입찰 시 주의할 점은 무엇입니까?

거래에서 보이는 커미션은 거래소의 커미션일 뿐입니다. 거래 중 브로커의 수수료는 보이지 않습니다. 적어도 오프너는 그렇습니다.

OnTrade(또는 OnTradeTransaction)에 의한 거래를 보고 즉시 계산하여 상태 및 로그에 기록합니다.

만일의 경우를 대비하여 추가하겠습니다. 하나의 주문이 부분적 볼륨으로 여러 거래를 생성할 수 있다는 점을 고려해야 합니다.

 
JRandomTrader # :

거래에서 보이는 커미션은 거래소의 커미션일 뿐입니다. 거래 중 브로커의 수수료는 보이지 않습니다. 적어도 오프너는 그렇습니다.

OnTrade(또는 OnTradeTransaction)에 의한 거래를 보고 즉시 계산하여 상태 및 로그에 기록합니다.

만일의 경우를 대비하여 추가하겠습니다. 하나의 주문이 부분적 볼륨으로 여러 거래를 생성할 수 있다는 점을 고려해야 합니다.

감사해요!!!
 

과정에 있고 최선의 방법으로 해결하는 방법을 알고 있는 조직 계획 momentik이 여전히 있습니다. 코드로 단어를 작성하도록 요청합니다.

일반적으로 주문 주기를 이해하는 방법 - 이익이 새로 시작됨 - 평균 포지션 개시 가격을 고려하기 위해(해당 청산 값이 변경됨):

분명히 말해서, 나 자신과 마술사가있는 로봇을 통해 터미널에서 들어갈 수도 있습니다 ....

일반적으로 포지션 진입의 평균 가격을 계산하려면 보고 포인트가 필요합니다.

여기에서 데이터를 사용할 수 있습니다. 예를 들어 이전 위치가 이익으로 마감된 시간을 읽고 거기에서 서버의 실시간과 차이를 가져옵니다. 예를 들어 터미널에서 직접 사이클을 시작하는 경우와 같이 마술 없이:

글쎄, 다음과 같은 것:

 // --- определение границ требуемой торговой истории
   datetime end= TimeCurrent ();                 // текущее серверное время
   datetime start=end- PeriodSeconds ( PERIOD_D1 ); // установим начало на сутки назад
플러스의 이전 위치와 같은 - 현재 사이클의 회계가 이미 시작되었습니다. 및 주문 - 총 포지션의 평균 진입 가격을 계산하려면 이미 진입 가격과 거래량을 모두 계산해야 합니다...

https://www.mql5.com/ru/articles/211


Получение информации по ордерам из истории

Работа с историческими ордерами почти ничем не отличается от работы с действующими ордерами за одним только исключением. Если количество действующих ордеров в кэше mql5-программе не может быть больше одного, то результат HistoryOrdersTotal () и количество  исторических ордеров в кэше зависит от того, какой объем торговой истории был загружен функцией HistorySelect (start, end), HistorySelectByPosition () или HistoryOrderSelect ().
Важно: если торговая история не была загружена в кэш mql5-программы одной из функций   HistorySelect (), HistorySelectByPosition () или HistoryOrderSelect (), то работать с историческими ордерами и сделками невозможно. Обязательно запрашивайте требуемую историю сделок и ордеров перед получением данных по торговой истории.

Для примера приведен скрипт, который ищет последний ордер за последний день и выводит по нему информацию. 

// --- определение границ требуемой торговой истории
   datetime end= TimeCurrent ();                 // текущее серверное время
   datetime start=end- PeriodSeconds ( PERIOD_D1 ); // установим начало на сутки назад
//--- запросим в кэш программы торговую историю за день
   HistorySelect (start,end);
//--- получим количество ордеров в истории
   int history_orders= HistoryOrdersTotal ();
//--- получим тикет ордера из истории, имеющего последний индекс в списке
   ulong order_ticket= HistoryOrderGetTicket (history_orders- 1 );
   if (order_ticket> 0 ) // получили в кэш исторический ордер, работаем с ним
     {
       //--- статус ордера
       ENUM_ORDER_STATE state=( ENUM_ORDER_STATE ) HistoryOrderGetInteger (order_ticket, ORDER_STATE );
       long order_magic      = HistoryOrderGetInteger (order_ticket, ORDER_MAGIC );
       long pos_ID           = HistoryOrderGetInteger (order_ticket, ORDER_POSITION_ID );
       PrintFormat ( "Ордер #%d: ORDER_MAGIC=#%d, ORDER_STATE=%d, ORDER_POSITION_ID=%d" ,
                  order_ticket,order_magic, EnumToString (state),pos_ID);

     }
   else                // неудачная попытка получения ордера

     {
       PrintFormat ( "Всего в истории %d ордеров, не удалось выбрать ордер" +
                   " с индексом %d. Ошибка %d" ,history_orders,history_orders- 1 , GetLastError ());
     }

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

물론 이상적으로는 이전 주기의 결과와 상관없이 플러스나 마이너스로 닫히도록 해야 합니다.

예를 들어, 새로운 실제 평균 주기의 평균 가격 또는 추가 충전의 시작은 코드에서 계산을 위해 표시되었습니다. 그것은 중요하지 않습니다...

Ордерa, позиции и сделки в MetaTrader 5
Ордерa, позиции и сделки в MetaTrader 5
  • www.mql5.com
Надежный торговый робот не может быть создан без понимания механизмов работы торговой системы MetaTrader 5. Клиентский терминал получает от торгового сервера информацию о позициях, ордерах и сделках. Чтобы правильно обработать эти данные средствами MQL5 необходимо хорошо представлять как происходит взаимодействие mql5-программы и среды исполнения терминала.