사람들을 도와주세요. 거래가 열렸던 가격을 구하려고 합니다. 처음에는 CTrade를 통해 거래했지만 trade.resultprice는 0이었습니다. 나는 MqlTrade를 통해 그것을 하기 시작했고 테스터에서 result.price가 정상적으로 표시되었지만 라이브에서는 0이 되었습니다. 저는 OnTradeTransaction 을 통해 하였지만 라이브에서는 매우 빠른 거래로 0으로 표시되고 자동 거래가 중지되면 마지막 거래의 가격을 표시합니다. 구매 거래가 이루어진 가격을 얻는 방법은 무엇입니까?
mikhail_shmakov : 사람들을 도와주세요. 나는 거래가 열린 가격을 얻으려고 노력하고 있습니다. 처음에는 CTrade를 통해 거래했지만 trade.resultprice는 0이었습니다. 나는 MqlTrade를 통해 그것을 하기 시작했고 테스터에서 result.price가 정상적으로 표시되었지만 라이브에서는 0이 되었습니다. 저는 OnTradeTransaction 을 통해 하였지만 라이브에서는 매우 빠른 거래로 0으로 표시되고 자동 거래가 중지되면 마지막 거래의 가격을 표시합니다. 구매 거래가 이루어진 가격을 얻는 방법은 무엇입니까?
structMqlTradeTransaction
{
ulong deal; // Тикет сделки ulong order; // Тикет ордера string symbol; // Имя торгового инструмента ENUM_TRADE_TRANSACTION_TYPE type; // Тип торговой транзакции ENUM_ORDER_TYPE order_type; // Тип ордера ENUM_ORDER_STATE order_state; // Состояние ордера ENUM_DEAL_TYPE deal_type; // Тип сделки ENUM_ORDER_TYPE_TIME time_type; // Тип ордера по времени действия datetime time_expiration; // Срок истечения ордера double price; // Цена double price_trigger; // Цена срабатывания стоп-лимитного ордера double price_sl; // Уровень Stop Loss double price_tp; // Уровень Take Profit double volume; // Объем в лотах ulong position; // Тикет позиции ulong position_by; // Тикет встречной позиции
};
"매우 빠른 트랜잭션"은 무엇을 의미합니까? OnTradeTransaction은 모든 거래에서 실행됩니다. 거래 유형을 구분하고 TRADE_TRANSACTION_DEAL_ADD에서 가격을 취하기만 하면 됩니다.
Например, при отсылке рыночного ордера на покупку он обрабатывается, для счета создается соответствующий ордер на покупку, происходит исполнение ордера, его удаление из списка открытых, добавление в историю ордеров, далее добавляется соответствующая сделка в историю и создается новая позиция. Все эти действия являются торговыми транзакциями...
//+------------------------------------------------------------------+ //| Получает текущее количество отложенных ордеров с указанным ORDER_MAGIC | //+------------------------------------------------------------------+ int GetOrdersTotalByMagic( longconst magic_number)
{
ulong order_ticket;
int total= 0 ;
//--- пройдем по всем отложенным ордерам for ( int i= 0 ;i< OrdersTotal ();i++)
if ((order_ticket= OrderGetTicket (i))> 0 )
if (magic_number== OrderGetInteger ( ORDER_MAGIC )) total++;
//--- return (total);
}
안녕하세요 프로그래머 여러분. 기능 변경을 도와주세요. MQL5 참조 에서 위에 제시된 기능 주어진 Magic에 대한 모든 열린 위치의 수를 계산하도록 하는 방법은 무엇입니까?
Alexey Viktorov : 최소한 모든 곳에서 Orders***를 Positions***로 변경한 다음 확인해야 합니다.
작동하는 것 같습니다) 이 기능을 MQL5 참고서 에 추가할 수 있습니다. )) 너무 이르긴 하지만 아직 테스트 중입니다.)
//+------------------------------------------------------------------+ //| Получает текущее количество открытых позиций с указанным ORDER_MAGIC | //+------------------------------------------------------------------+ int GetPositionsTotalByMagic( longconst magic_number)
{
ulong position_ticket;
int total= 0 ;
//--- пройдем по всем открытым позициям for ( int i= 0 ;i< PositionsTotal ();i++)
if ((position_ticket= PositionGetTicket (i))> 0 )
if (magic_number== PositionGetInteger ( POSITION_MAGIC )) total++;
//--- return (total);
}
mikhail_shmakov : 사람들을 도와주세요. 나는 거래가 열린 가격을 얻으려고 노력하고 있습니다. 처음에는 CTrade를 통해 거래했지만 trade.resultprice는 0이었습니다. MqlTrade를 통해 시작했는데 테스터에서 result.price가 정상적으로 표시되었지만 라이브에서는 0이 되었습니다 . 저는 OnTradeTransaction 을 통해 하였지만 라이브에서는 매우 빠른 거래로 0으로 표시되고 자동 거래가 중지되면 마지막 거래의 가격을 표시합니다. 구매 거래가 이루어진 가격을 얻는 방법은 무엇입니까?
OrderSend는 주문을 보냅니다. 그런 다음 실행과 기록에 해당 트랜잭션이 나타날 때까지 기다려야 합니다.
이 모든 작업을 올바르게 수행하려면 OnTradeTransaction 명령을 잘 사용하거나 OrderSend에 대해 다소 무거운 코드를 한 번 작성해야 합니다.
사람들을 도와주세요. 나는 거래가 열린 가격을 얻으려고 노력하고 있습니다. 처음에는 CTrade를 통해 거래했지만 trade.resultprice는 0이었습니다. 나는 MqlTrade를 통해 그것을 하기 시작했고 테스터에서 result.price가 정상적으로 표시되었지만 라이브에서는 0이 되었습니다. 저는 OnTradeTransaction 을 통해 하였지만 라이브에서는 매우 빠른 거래로 0으로 표시되고 자동 거래가 중지되면 마지막 거래의 가격을 표시합니다. 구매 거래가 이루어진 가격을 얻는 방법은 무엇입니까?
안녕하세요 프로그래머 여러분. 이 기능을 변경할 수 있도록 도와주세요. MQL5 참조 에서 위에 제시된 기능 주어진 Magic에 대한 모든 열린 위치의 수를 계산하도록 하는 방법은 무엇입니까?
최소한 모든 곳에서 Orders***를 Positions***로 변경한 다음 확인해야 합니다.
작동하는 것 같습니다) 이 기능을 MQL5 참고서 에 추가할 수 있습니다. )) 너무 이르긴 하지만 아직 테스트 중입니다.)
작동하는 것 같습니다) 이 기능을 MQL5 참고서 에 추가할 수 있습니다. )) 너무 이르긴 하지만 아직 테스트 중입니다.)
사람들을 도와주세요. 나는 거래가 열린 가격을 얻으려고 노력하고 있습니다. 처음에는 CTrade를 통해 거래했지만 trade.resultprice는 0이었습니다. MqlTrade를 통해 시작했는데 테스터에서 result.price가 정상적으로 표시되었지만 라이브에서는 0이 되었습니다 . 저는 OnTradeTransaction 을 통해 하였지만 라이브에서는 매우 빠른 거래로 0으로 표시되고 자동 거래가 중지되면 마지막 거래의 가격을 표시합니다. 구매 거래가 이루어진 가격을 얻는 방법은 무엇입니까?
OrderSend는 주문을 보냅니다. 그런 다음 실행과 기록에 해당 트랜잭션이 나타날 때까지 기다려야 합니다.
이 모든 작업을 올바르게 수행하려면 OnTradeTransaction 명령을 잘 사용하거나 OrderSend에 대해 다소 무거운 코드를 한 번 작성해야 합니다.
두 번째 경우에는 원하는 대로 CTrade도 작동합니다.
선택한 차트 기호 의 가격 측정 정확도를 결정하는 소수점 이하 소수점 이하 자릿수를 반환하는 Digits에 해당하는 것은 무엇입니까?
선택한 차트 기호 의 가격을 측정하는 정확도를 결정하는 소수점 이하 소수점 이하 자릿수를 반환하는 Digits의 아날로그는 무엇입니까?
고맙습니다!