이 예제는 단순하게 저가나 고가 도달시 매수 시장가 주문을 집행하는 OrderTicket 사용방법입니다
일단 주문이 전송되면, 주문 상태 플래그는 false로 세팅됩니다.
새로운 주문을 내려면 Indicator를 reload하도록 리셋해야 합니다.
경고 : 시장가 주문을 발생시키므로 테스트용으로 실제 계좌에 주문하지 마시기 바랍니다.
[Course Example #10]
1. EasyLanguage Indicator #10_MarketOrder를 새로 만듭니다.
2. ToolBox에서 OrderTicket을 더블클릭하거나 Component Tray에 드래그앤드랍 합니다.
3. Properties Tab에서 OrderTicket1을 선택한 후 아래와 같이 편집합니다.
1) Symbol : symbol (차트나 레이더스크린에서 조회된 종목을 사용합니다.)
2) Account : Input 아이콘을 클릭하여 iAccount1을 생성시킵니다.
3) Quantity : Input 아이콘을 클릭하여 iQuantity1을 생성시킵니다.
4) Action : Buy를 선택합니다.
5) Type : Market을 선택합니다.
4. Properties Tab에서 Analysis Technique을 선택한 후 이벤트 아이콘을 클릭합니다.
1) 목록 중 Initialized를 더블클릭하여 EasyLanguage내에 새로운 속성을 가진 event handler method를 생성합니다.
5. EasyLanguage에 아래와 같이 Input과 변수를 추가합니다.
1) Input : OrderActive(True); // Indicator 실행 시 주문전송이 활성화 되었는지를 알려줄 수 있습니다.
2) Var : double HiTarget(0), double LoTarget(0), // 주문을 생성시킬 고가목표, 저가목표 변수를 선언합니다.
intrabarpersist AllowTradeFlag(True);
// intrabarpersist 변수는 주문규칙이 활성화되고 단 한번만 주문을 발생시킬 수 있도록 조절합니다.
6. 상기 4에서 만든 AnalysisTechnique_Initialized method에 아래와 같이 초기값을 설정합니다.
1) OrderTicket1.SymbolType = Category; // Category 예약어를 사용하여 현재 조회종목의 상품유형 (주식, 선물 등)을 설정합니다.
2) AllowTradeFlag = OrderActive;
// Input으로 입력한 OrderAvtive를 초기값으로 설정하여 나중에 주문이 한번만 발생하도록 제어합니다.
7. indicator의 그리기 기능을 구현할 method를 생성합니다.
Method void PlotValues() begin
Plot1(HiTarget, "High Target");
Plot2(LoTarget, "Low Target");
Plot3(AllowTradeFlag.tostring(), " Active");
end;
8. EasyLanguage에 아래와 같이 코드를 추가합니다.
HiTarget = HighestFC(High,3)[1]; // 과거 3개의 바에 걸쳐 가장 높은 가격을 고가목표로 설정합니다.
LoTarget = LowestFC(Low,3)[1]; // 과거 3개의 바에 걸쳐 가장 낮은 가격을 저가목표로 설정합니다.
PlotValues(); // 상기 7에서 만든 method를 호출합니다.
If ((Close <= LoTarget OR Close >= HiTarget) AND // 현재가격이 고가목표나 저가목표에 도달하고
(LastBarOnChart AND AllowTradeFlag)) then begin // 가장 마지막 봉에서 AllowTradeFlag가 True일 경우에
OrderTicket1.send(); // 주문을 전송하는 method를 호출합니다.
AllowTradeFlag = False; // 차트가 리프레쉬되지 않는 한 주문을 넣지 않기 위해 AllowTradeFlag를 False로 변경합니다.
end;
9. Indicator를 Verify 합니다.
10. 차트에 인디케이터를 추가한 후 Format Indicator > General tab에서
enable order placement objects를 체크인합니다.
한번 더 주의사항 : 상기 절차로 실행시키시면 바로 시장가 주문이 집행되오니 테스트시 유의하시기 바랍니다.
일단 주문이 전송되면, 주문 상태 플래그는 false로 세팅됩니다.
새로운 주문을 내려면 Indicator를 reload하도록 리셋해야 합니다.
[Course Example #10]
1. EasyLanguage Indicator #10_MarketOrder를 새로 만듭니다.
2. ToolBox에서 OrderTicket을 더블클릭하거나 Component Tray에 드래그앤드랍 합니다.
3. Properties Tab에서 OrderTicket1을 선택한 후 아래와 같이 편집합니다.
1) Symbol : symbol (차트나 레이더스크린에서 조회된 종목을 사용합니다.)
2) Account : Input 아이콘을 클릭하여 iAccount1을 생성시킵니다.
3) Quantity : Input 아이콘을 클릭하여 iQuantity1을 생성시킵니다.
4) Action : Buy를 선택합니다.
5) Type : Market을 선택합니다.
4. Properties Tab에서 Analysis Technique을 선택한 후 이벤트 아이콘을 클릭합니다.
1) 목록 중 Initialized를 더블클릭하여 EasyLanguage내에 새로운 속성을 가진 event handler method를 생성합니다.
5. EasyLanguage에 아래와 같이 Input과 변수를 추가합니다.
1) Input : OrderActive(True); // Indicator 실행 시 주문전송이 활성화 되었는지를 알려줄 수 있습니다.
2) Var : double HiTarget(0), double LoTarget(0), // 주문을 생성시킬 고가목표, 저가목표 변수를 선언합니다.
intrabarpersist AllowTradeFlag(True);
// intrabarpersist 변수는 주문규칙이 활성화되고 단 한번만 주문을 발생시킬 수 있도록 조절합니다.
6. 상기 4에서 만든 AnalysisTechnique_Initialized method에 아래와 같이 초기값을 설정합니다.
1) OrderTicket1.SymbolType = Category; // Category 예약어를 사용하여 현재 조회종목의 상품유형 (주식, 선물 등)을 설정합니다.
2) AllowTradeFlag = OrderActive;
// Input으로 입력한 OrderAvtive를 초기값으로 설정하여 나중에 주문이 한번만 발생하도록 제어합니다.
7. indicator의 그리기 기능을 구현할 method를 생성합니다.
Method void PlotValues() begin
Plot1(HiTarget, "High Target");
Plot2(LoTarget, "Low Target");
Plot3(AllowTradeFlag.tostring(), " Active");
end;
8. EasyLanguage에 아래와 같이 코드를 추가합니다.
HiTarget = HighestFC(High,3)[1]; // 과거 3개의 바에 걸쳐 가장 높은 가격을 고가목표로 설정합니다.
LoTarget = LowestFC(Low,3)[1]; // 과거 3개의 바에 걸쳐 가장 낮은 가격을 저가목표로 설정합니다.
PlotValues(); // 상기 7에서 만든 method를 호출합니다.
If ((Close <= LoTarget OR Close >= HiTarget) AND // 현재가격이 고가목표나 저가목표에 도달하고
(LastBarOnChart AND AllowTradeFlag)) then begin // 가장 마지막 봉에서 AllowTradeFlag가 True일 경우에
OrderTicket1.send(); // 주문을 전송하는 method를 호출합니다.
AllowTradeFlag = False; // 차트가 리프레쉬되지 않는 한 주문을 넣지 않기 위해 AllowTradeFlag를 False로 변경합니다.
end;
9. Indicator를 Verify 합니다.
10. 차트에 인디케이터를 추가한 후 Format Indicator > General tab에서
enable order placement objects를 체크인합니다.