당사 팬 페이지에 가입하십시오
- 조회수:
- 33
- 평가:
- 게시됨:
- 업데이트됨:
-
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
트레이딩 세션 제어를 위한 라이브러리. 시작 시 주 7일(토요일과 일요일에 암호화폐 거래가 있을 수 있음) 동안의 거래 세션 시간을 계산하여 하루에 최대 10개의 세션을 계산합니다. 그런 다음 OnTick()에서 확인을 할 수 있으며, 틱이 거래 세션 외부에서 나온 경우 추가 처리를 종료할 수 있습니다.
사용 예시:
//+------------------------------------------------------------------+ //|testControl_Trade_Sessions.mq5 | //+------------------------------------------------------------------+ // #define LoadSessionFromInputs // 입력에서 세션 읽기 #include <Forester\Control_Trade_Sessions.mqh> // 거래 세션 제어 코드 연결하기 int OnInit() { return(INIT_SUCCEEDED); } void OnTick() { static TRADE_SESSIONS TradeSession(_Symbol);// 시장 개장/종가 시간을 가져와 요일별로 배열에 저장합니다. Expert Advisor를 시작할 때 한 번 호출됩니다(정적 참조). if(!TradeSession.isSessionTrade(TimeCurrent())){Print("Market closed. OnTick return"); return;} // 귀하의 행동 }
결과는 다음과 같이 출력됩니다:
2022.01.10 00:05:00 Day: 0 Trade sessions: 1: 00:00-00:00 - это воскресенье
2022.01.10 00:05:00 Day: 1 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 2 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 3 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 4 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 5 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 6 Trade sessions: 1: 00:00-00:00
2022.05.30 00:05:00 Market closed. OnTick return
2022.05.30 00:05:01 Market closed. OnTick return
...
2022.05.30 00:14:36 Market closed. OnTick return
2022.05.30 00:14:40 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
...
2022.05.30 23:59:30 Market closed. OnTick return
2022.05.31 00:00:01 Market closed. OnTick return
...
새로운 MQL5 함수는 주말을 포함한 모든 날의 거래 세션을 읽는 데 사용됩니다.
가능한 한 빨리 작동하며 거래 세션 내의 각 틱에 대해 1 개의 확인 만 수행됩니다 :
.
if(time < this.NextTradeStop ) { return true; }여기서 NextTradeStop은 현재 트레이딩 세션의 종료 시간입니다.
거래 세션 외부의 각 틱에서도 1회의 확인이 이루어집니다:
if(time < this.NextTradeStart ) { return false; }세션 간 전환 시에만 다음 세션의 시간을 얻기 위해 배열에 액세스합니다.
예를 들어 내 DC에서 거래 세션은 00:15부터 23:55까지입니다. 00:15 이후 첫 번째 틱으로 NextTradeStop이 23:55로 설정되고 하루 종일 이 조건만 확인됩니다.
내 거래 세션
거래 세션 시간을 수동으로 지정할 수도 있습니다. 이 옵션을 활성화하려면
줄을 추가하세요.
#define LoadSessionFromInputs // 입력에서 세션 읽기
요일별로 트레이딩 세션을 입력하기 위한 7개의 입력이 생성됩니다.
세션 시간은 반드시 공백 없이 : - 및 를 사용하여 입력합니다,
매개변수 탭에서 다음과 같이 표시됩니다:

그리고 이것이 로그에 출력되는 방식입니다:
TradeSessionsTuesday=00:15-23:55
TradeSessionsWednesday=00:10-17:45,17:55-23:00,23:05-23:55
TradeSessionsThursday=00:15-17:45,17:55-23:55
TradeSessionsFriday=00:15-23:55
TradeSessionsSaturday=00:15-23:55
TradeSessionsSunday=
EURUSD : 실제 틱은 2022년부터 시작됩니다.05.10 00:00:00, 모든 틱 세대 사용
2022.01.10 00:05:00 일: 1 거래 세션: 1: 00:15-17:45, 2: 17:55-23:55
2022.01.10 00:05:00 일: 2 거래 세션: 1: 00:15-23:55
2022.01.10 00:05:00 일: 3 거래 세션: 1: 00:10-17:45, 2: 17:55-23:00, 3: 23:05-23:55
2022.01.10 00:05:00 일: 4 거래 세션: 1: 00:15-17:45, 2: 17:55-23:55
2022.01.10 00:05:00 일: 5 거래 세션: 1: 00:15-23:55
2022.01.10 00:05:00 일: 6 거래 세션: 1: 00:15-23:55
2022.01.10 00:05:00 시장 마감. OnTick 반환
...
세션 종료 시간이 시작 시간보다 짧은 경우(예: 20:00-8:00) 세션은 다음날 8:00까지 계속됩니다. 이는 거래 세션이 서버 시간과 다른 시간대에 있는 경우에 유용할 수 있습니다.
거래 세션 시간은 입력 없이 코드에서 지정할 수도 있습니다. 이를 위해 LoadFromInputs() 함수가 만들어졌습니다. 이 함수는 입력 없이도 예시처럼 문자열 배열을 사용하여 코드에서 직접 호출할 수 있습니다.
string s=["00:15-17:45,17:55-23:55","00:00-24:00",....] void LoadFromInputs(string &s[]){...}
전문가용 어드바이저가 다중 통화이고 상품마다 거래 세션 시간이 다른 경우 각 상품에 대해 별도의 TRADE_SESSIONS 인스턴스를 만들고 세션 데이터로 LoadFromInputs()를 호출하고 isSessionTrade()를 확인할 수 있습니다. 이렇게 하려면 이 예제와 유사하게 코드를 수정해야 합니다.
MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/48059
탠덤
페어 트레이딩. 헤징. 시장 중립 전략
SetSellStopLimitOrder
이 스크립트는 현재 가격과 주문 발동 가격에서 고정된 값의 발동 레벨, 손절매 레벨, 이익실현 레벨을 핍 단위로 설정하여 SellStopLimit 주문을 설정하도록 설계되었습니다.
Moving Averages-14 different types
종가를 기준으로 14가지 유형의 이동 평균을 계산하는 지표입니다.
EMDcotir(경험적 모드 분해)
현재 기기의 경험적 모드 분해.