1. 계정의 모든 심볼의 모든 포지션 정보들 확보하기.
#include <Trade\PositionInfo.mqh>
CPositionInfo m_PosiInfo;
int Proc_SupplyPosition()
{
int num_position_all_symbol = PositionsTotal(); // 계좌의 모든 포지션 수량 반환됨.
for(int idx_posi = 0 ; idx_posi < num_position_all_symbol; idx_posi++)
{
m_PosiInfo.SelectByIndex(idx_posi); // 인덱스로 포지션 선택하고,
Proc_GetInfoPosi(); // 현재 선택된 포지션 1개에서 필요한 정보 확보.
}
return 1;
}
void Proc_GetInfoPosi()
{
// 필요한정보들 m_PosiInfo 이용하여 확보.
long ticket_posi = m_PosiInfo.Ticket();
long time_msec_posi_open = m_PosiInfo.TimeMsc();
...
}
2. EA 가 배치된 챠트의 심볼의 포지션 정보들만 확보하기
- 상기 1의 for 루프내에서 선택된 포지션의 심볼이 챠트의 심볼인것만 선택적으로 처리하는부분 추가됨.
#include <Trade\PositionInfo.mqh>
CPositionInfo m_PosiInfo;
int Proc_SupplyPosition()
{
int num_position_all_symbol = PositionsTotal(); // 계좌의 모든 포지션 수량 반환됨.
for(int idx_posi = 0 ; idx_posi < num_position_all_symbol; idx_posi++)
{
m_PosiInfo.SelectByIndex(idx_posi); // 인덱스로 포지션 선택하고,
if(m_PosiInfo.Symbol() == _Symbol) //포지션의 심볼이 ea 가 적용중인 챠트의 심볼과 같은것만 검출.
{
Proc_GetInfoPosi(); // 현재 선택된 포지션에서 정보 확보.
}
}
return 1;
}
void Proc_GetInfoPosi()
{
// 필요한정보들 m_PosiInfo 이용하여 확보.
long ticket_posi = m_PosiInfo.Ticket();
long time_msec_posi_open = m_PosiInfo.TimeMsc();
...
}
연관
상위정리
첫 등록 : 2020.11.08
최종 수정 : 2023.03.06
단축 주소 : https://igotit.tistory.com/2689
'트레이딩 > 메타트레이더 코딩' 카테고리의 다른 글
MQL5. CArray. 동적 배열 (0) | 2020.11.09 |
---|---|
MQL5. CHashMap iteration.반복 (0) | 2020.11.09 |
MQL5. 밀리초, 마이크로초 단위 시간 함수 . 일반 date time (2) | 2020.10.15 |
MQL5. MqlTick. CopyTicks. 틱 데이터. (9) | 2020.10.15 |
MQL5. CopyTime. Open.High.Low.Close.TickVolume.RealVolume.Spread. (0) | 2020.10.12 |
댓글