초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1124 1...111711181119112011211122112311241125112611271128112911301131...1503 새 코멘트 Alexey Viktorov 2019.09.10 19:30 #11231 macleta : 고마워, ndd 이게 뭐야? 따르지 않고 모든 것을 대체하지 않았습니다. 이것은 매크로입니다 #define ndd(A) NormalizeDouble (A, _Digits ) macleta 2019.09.10 20:20 #11232 Alexey Viktorov : 따르지 않고 모든 것을 대체하지 않았습니다. 이것은 매크로입니다 고맙습니다. astrologer Аполонов 2019.09.12 00:47 #11233 매직 넘버로 마지막 오픈 포지션 을 찾는 방법을 알려주세요. 아마도 마지막 오픈 포지션에 대한 로트 값을 반환하는 함수가 있지 않을까요? mql5에 필요합니다. Vladimir Karputov 2019.09.12 03:14 #11234 astrologer Аполонов : 매직 넘버로 마지막 오픈 포지션 을 찾는 방법을 알려주세요. 아마도 마지막 오픈 포지션의 로트 값을 반환하는 함수가 있지 않을까요? mql5에 필요합니다 여러 가지 방법이 있으므로 다음을 지정하십시오. 거래 계정 유형 - 헤지 또는 상계, 이 경우 포지션에 대해 알아야 합니다. 고문은 포지션을 열고 마지막 미결제 포지션의 매개변수를 찾아야 합니까? Vladimir Karputov 2019.09.12 03:36 #11235 astrologer Аполонов : 매직 넘버로 마지막 오픈 포지션 을 찾는 방법을 알려주세요. 아마도 마지막 오픈 포지션의 로트 값을 반환하는 함수가 있지 않을까요? mql5에 필요합니다 예 #1: //+------------------------------------------------------------------+ //| Trading engine 3.mq5 | //| Copyright © 2019, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2019, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" /* barabashkakvn Trading engine 3.042 */ #include <Trade\SymbolInfo.mqh> //--- CSymbolInfo m_symbol; // object of CSymbolInfo class //--- input parameters input ulong InpMagic = 200 ; // Magic number //--- //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { //--- if (!m_symbol.Name( Symbol ())) // sets symbol name { Print ( __FILE__ , " " , __FUNCTION__ , ", ERROR: CSymbolInfo.Name" ); return ( INIT_FAILED ); } //--- return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit ( const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick () { //--- } //+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction ( const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- get transaction type as enumeration value ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- if transaction is result of addition of the transaction in history if (type== TRADE_TRANSACTION_DEAL_ADD ) { long deal_ticket = 0 ; long deal_order = 0 ; long deal_time = 0 ; long deal_time_msc = 0 ; long deal_type =- 1 ; long deal_entry =- 1 ; long deal_magic = 0 ; long deal_reason =- 1 ; long deal_position_id = 0 ; double deal_volume = 0.0 ; double deal_price = 0.0 ; double deal_commission = 0.0 ; double deal_swap = 0.0 ; double deal_profit = 0.0 ; string deal_symbol = "" ; string deal_comment = "" ; string deal_external_id = "" ; if ( HistoryDealSelect (trans.deal)) { deal_ticket = HistoryDealGetInteger (trans.deal, DEAL_TICKET ); deal_order = HistoryDealGetInteger (trans.deal, DEAL_ORDER ); deal_time = HistoryDealGetInteger (trans.deal, DEAL_TIME ); deal_time_msc = HistoryDealGetInteger (trans.deal, DEAL_TIME_MSC ); deal_type = HistoryDealGetInteger (trans.deal, DEAL_TYPE ); deal_entry = HistoryDealGetInteger (trans.deal, DEAL_ENTRY ); deal_magic = HistoryDealGetInteger (trans.deal, DEAL_MAGIC ); deal_reason = HistoryDealGetInteger (trans.deal, DEAL_REASON ); deal_position_id = HistoryDealGetInteger (trans.deal, DEAL_POSITION_ID ); deal_volume = HistoryDealGetDouble (trans.deal, DEAL_VOLUME ); deal_price = HistoryDealGetDouble (trans.deal, DEAL_PRICE ); deal_commission = HistoryDealGetDouble (trans.deal, DEAL_COMMISSION ); deal_swap = HistoryDealGetDouble (trans.deal, DEAL_SWAP ); deal_profit = HistoryDealGetDouble (trans.deal, DEAL_PROFIT ); deal_symbol = HistoryDealGetString (trans.deal, DEAL_SYMBOL ); deal_comment = HistoryDealGetString (trans.deal, DEAL_COMMENT ); deal_external_id = HistoryDealGetString (trans.deal, DEAL_EXTERNAL_ID ); } else return ; ENUM_DEAL_ENTRY enum_deal_entry=( ENUM_DEAL_ENTRY )deal_entry; if (deal_symbol==m_symbol.Name() && deal_magic==InpMagic) { if (deal_type== DEAL_TYPE_BUY || deal_type== DEAL_TYPE_SELL ) { if (deal_entry== DEAL_ENTRY_IN ) { Print ( "Last DEAL IN volume: " , DoubleToString (deal_volume, 2 )); } } } } } //+------------------------------------------------------------------+ OnTradeTransaction에서 우리는 다음 유형의 트랜잭션을 포착합니다. TRADE_TRANSACTION_DEAL_ADD 역사에 거래를 추가합니다. 주문 실행 또는 계정 잔액 작업의 결과로 수행됩니다. if (type== TRADE_TRANSACTION_DEAL_ADD ) 우리는 이것이 우리의 상징이자 마법이 되기를 바랍니다. if (deal_symbol==m_symbol.Name() && deal_magic==InpMagic) 우리 는 BUY 또는 SELL TRADE 를 찾습니다. if (deal_type== DEAL_TYPE_BUY || deal_type== DEAL_TYPE_SELL ) 우리는이 거래를 찾습니다 DEAL_ENTRY_IN 시장 진입 if (deal_entry== DEAL_ENTRY_IN ) 파일: Test.mq5 10 kb Vladimir Karputov 2019.09.12 03:48 #11236 astrologer Аполонов : 매직 넘버로 마지막 오픈 포지션 을 찾는 방법을 알려주세요. 아마도 마지막 오픈 포지션의 로트 값을 반환하는 함수가 있지 않을까요? mql5에 필요합니다. 옵션 #2 - 위치 목록을 반복합니다. //+------------------------------------------------------------------+ //| Trading engine 3.mq5 | //| Copyright © 2019, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2019, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" /* barabashkakvn Trading engine 3.042 */ #include <Trade\PositionInfo.mqh> #include <Trade\SymbolInfo.mqh> //--- CPositionInfo m_position; // object of CPositionInfo class CSymbolInfo m_symbol; // object of CSymbolInfo class //--- input parameters input ulong InpMagic = 200 ; // Magic number //--- //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { //--- if (!m_symbol.Name( Symbol ())) // sets symbol name { Print ( __FILE__ , " " , __FUNCTION__ , ", ERROR: CSymbolInfo.Name" ); return ( INIT_FAILED ); } //--- return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit ( const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick () { //--- ulong last_time = 0 ; double last_volume = 0.0 ; for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--) if (m_position.SelectByIndex(i)) // selects the position by index for further access to its properties if (m_position. Symbol ()==m_symbol.Name() && m_position.Magic()==InpMagic) { if (m_position.TimeMsc()>last_time) { last_time=m_position.TimeMsc(); last_volume=m_position.Volume(); } } if (last_volume> 0.0 ) Print ( "Last POSITIONS volume: " , DoubleToString (last_volume, 2 )); } //+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction ( const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- } //+------------------------------------------------------------------+ 위치 목록 순회 for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--) 밀리초 단위로 가장 긴 포지션 오픈 시간을 찾고 있습니다. 시간Msc 수신 1970년 1월 1일부터 위치를 여는 시간(밀리초) if (m_position.TimeMsc()>last_time) { last_time=m_position.TimeMsc(); last_volume=m_position.Volume(); } 확인 - 볼륨이 "0.0"보다 큰 경우 - 위치가 발견되었습니다. if (last_volume> 0.0 ) Print ( "Last POSITIONS volume: " , DoubleToString (last_volume, 2 )); 파일: Test.mq5 6 kb macleta 2019.09.13 00:54 #11237 Alexey Viktorov : 손실 금액에 대한 함수는 다음과 같습니다. SL을 TP로 교체하면 충분합니다. 분명히 여기에는 무료 자금의 비율로 두 배의 위험이 있습니다. 예를 들어 1.5와 같이 돈으로 특정 금액의 이익을 설정하는 방법은 무엇입니까? double RiskLots( double risk, int TP) { double RiskMony, Lot; double tickValue = SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE ); double margin = SymbolInfoDouble ( _Symbol , SYMBOL_MARGIN_INITIAL ); double FreeMargin = AccountInfoDouble ( ACCOUNT_MARGIN_FREE ); long accountLeverage = AccountInfoInteger ( ACCOUNT_LEVERAGE ); RiskMony = floor (FreeMargin*risk/ 100 ); Lot = NormalizeDouble (RiskMony* _Point / NormalizeDouble (TP* _Point *tickValue, _Digits ), 2 ); // return (Lot); } astrologer Аполонов 2019.09.13 06:01 #11238 Благодарю Vladimir Karputov : 예 #1: OnTradeTransaction에서 우리는 다음 유형의 트랜잭션을 포착합니다. TRADE_TRANSACTION_DEAL_ADD 역사에 거래를 추가합니다. 주문 실행 또는 계정 잔액 작업의 결과로 수행됩니다. 우리는 이것이 우리의 상징이자 마법이 되기를 바랍니다. 우리 는 BUY 또는 SELL TRADE 를 찾습니다. 우리는이 거래를 찾습니다 DEAL_ENTRY_IN 시장 진입 Alexey Viktorov 2019.09.13 07:25 #11239 macleta : 분명히 여기에는 무료 자금의 비율로 두 배의 위험이 있습니다. 예를 들어 1.5와 같이 돈으로 특정 금액의 이익을 설정하는 방법은 무엇입니까? 자, 여기 라인이 있습니다 RiskMony = floor (FreeMargin*risk/ 100 ); 수식 대신 숫자를 입력하고 ... BillionerClub 2019.09.13 13:40 #11240 변환하는 방법, 마우스 위치, 동안, 그러나 떨어지지 않고? ChartTimeOnDropped 1...111711181119112011211122112311241125112611271128112911301131...1503 새 코멘트 사유: 취소 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
고마워, ndd 이게 뭐야?
따르지 않고 모든 것을 대체하지 않았습니다. 이것은 매크로입니다
따르지 않고 모든 것을 대체하지 않았습니다. 이것은 매크로입니다
매직 넘버로 마지막 오픈 포지션 을 찾는 방법을 알려주세요. 아마도 마지막 오픈 포지션의 로트 값을 반환하는 함수가 있지 않을까요? mql5에 필요합니다
여러 가지 방법이 있으므로 다음을 지정하십시오. 거래 계정 유형 - 헤지 또는 상계, 이 경우 포지션에 대해 알아야 합니다. 고문은 포지션을 열고 마지막 미결제 포지션의 매개변수를 찾아야 합니까?
매직 넘버로 마지막 오픈 포지션 을 찾는 방법을 알려주세요. 아마도 마지막 오픈 포지션의 로트 값을 반환하는 함수가 있지 않을까요? mql5에 필요합니다
예 #1:
OnTradeTransaction에서 우리는 다음 유형의 트랜잭션을 포착합니다.
TRADE_TRANSACTION_DEAL_ADD
역사에 거래를 추가합니다. 주문 실행 또는 계정 잔액 작업의 결과로 수행됩니다.
우리는 이것이 우리의 상징이자 마법이 되기를 바랍니다.
if (deal_symbol==m_symbol.Name() && deal_magic==InpMagic)
우리 는 BUY 또는 SELL TRADE 를 찾습니다.
우리는이 거래를 찾습니다
DEAL_ENTRY_IN
시장 진입
매직 넘버로 마지막 오픈 포지션 을 찾는 방법을 알려주세요. 아마도 마지막 오픈 포지션의 로트 값을 반환하는 함수가 있지 않을까요? mql5에 필요합니다.
옵션 #2 - 위치 목록을 반복합니다.
위치 목록 순회
밀리초 단위로 가장 긴 포지션 오픈 시간을 찾고 있습니다.
시간Msc
수신 1970년 1월 1일부터 위치를 여는 시간(밀리초)
if (m_position.TimeMsc()>last_time) { last_time=m_position.TimeMsc(); last_volume=m_position.Volume(); }
확인 - 볼륨이 "0.0"보다 큰 경우 - 위치가 발견되었습니다.
손실 금액에 대한 함수는 다음과 같습니다.
SL을 TP로 교체하면 충분합니다.
예 #1:
OnTradeTransaction에서 우리는 다음 유형의 트랜잭션을 포착합니다.
TRADE_TRANSACTION_DEAL_ADD
역사에 거래를 추가합니다. 주문 실행 또는 계정 잔액 작업의 결과로 수행됩니다.
우리는 이것이 우리의 상징이자 마법이 되기를 바랍니다.
우리 는 BUY 또는 SELL TRADE 를 찾습니다.
우리는이 거래를 찾습니다
DEAL_ENTRY_IN
시장 진입
분명히 여기에는 무료 자금의 비율로 두 배의 위험이 있습니다. 예를 들어 1.5와 같이 돈으로 특정 금액의 이익을 설정하는 방법은 무엇입니까?
자, 여기 라인이 있습니다
수식 대신 숫자를 입력하고 ...변환하는 방법, 마우스 위치, 동안, 그러나 떨어지지 않고?
ChartTimeOnDropped