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
최종 수정 :
단축 주소 : https://igotit.tistory.com/2689
'Trading > 메타트레이더 코딩' 카테고리의 다른 글
MQL5. CArray. 동적 배열 (0) | 2020.11.09 |
---|---|
MQL5. CHashMap iteration.반복 (0) | 2020.11.09 |
MQL5. 포지션 함수, 클래스 활용코드 . 심볼1개의 모든 포지션등. (3) | 2020.11.08 |
MQL5. 밀리초, 마이크로초 단위 시간 함수 . 일반 date time (2) | 2020.10.15 |
MQL5. MqlTick. CopyTicks. 틱 데이터. (0) | 2020.10.15 |
MQL5. CopyTime. Open.High.Low.Close.TickVolume.RealVolume.Spread. (0) | 2020.10.12 |
댓글을 달아 주세요
왜 리턴 1을 반환하나요???
2020.11.23 22:21 [ ADDR : EDIT/ DEL : REPLY ]함수를 종료시키지 않아서 계속 변수를 써먹기 위함인가요?
2020.11.23 22:23 [ ADDR : EDIT/ DEL : REPLY ]상기 예의 함수 반환값은 별다른 의미없고 단순히 제가 코딩하는 습관 중의 하나. 초기 함수 선언시 함수내부 실행과정 중 오류있는 경우 음수 반환시키고 호출한곳에서 이 반환값 점검할 의도였으나, 상기예에서 함수는 막상 다 구현해보고 나니 딱히 오류 검출 할 필요성 없어서 리턴값은 1만 있는 상태. 이런 경우 함수 선언을 다시 void 로 수정 해도 되나 번잡스러우니 그냥 초기 선언을 수정없이 내버려 둔거예요.
2020.11.24 12:46 신고 [ ADDR : EDIT/ DEL ]