예스스탁
예스스탁 답변
2021-01-22 13:00:15
안녕하세요
예스스탁입니다.
1
고점/저점은 사후적으로 알게 되므로 고점봉과 저점봉에서 신호는 가능하지 않습니다.
고점/저점이 완성되는 봉에서 신호가 발생합니다.
2
수식안에서 실제 주문가격을 지정하는 부분이 없습니다.
차트에서 신호가 발생하면 실제 주문가격은
설정창의 매매탭에서 지정한 주문가격으로 주문이 집행됩니다.
최유리지정가는 설정창에서 지정하셔야 합니다.
3
랭귀지는 차트의 데이타만 사용가능합니다.
함수로 예수금을 가져오는 함수가 있지만 차트의 과거봉에는 제공되지 않고
실시간봉에서만 제공되어 해당 함수를 이용하면 차트과거봉에서 값을 알지 못해
과거봉의 신호를 표시할수 없습니다. 프로그램 재접속이나 차트 재조회시에
이전 발생한 신호를 그대로 표현하지 못하게 됩니다.
수식안에 최초매수와 추가매수시 금액을 직접 지정해서 사용하셔야 합니다.
4
Input:전환비율(5),최초매수(1000000),추가매수(100000),최대진입누적(10);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),ADXV1(0);
Array:고[10,4](0),저[10,4](0);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1] * (1 + (전환비율/100)) < HH and hiBar == 0;
Condition2 = 고[1,1] * (1 - (전환비율/100)) > LL and loBar == 0;
처리구분 = "";
If Condition1 and Condition2 Then // 고점과 저점 조건 동시 만족
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,BLACK);
if MarketPosition == 0 Then
Buy("b",OnClose,DEF,Floor(최초매수/C));
if MarketPosition == 1 and MaxEntries < 최대진입누적 and 저[1,1] < LL Then
Buy("bb",OnClose,DEF,Floor(추가매수/C));
}
Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
}
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,BLACK);
if c > AvgEntryPrice Then
ExitLong("bx");
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
}
if MarketPosition == 1 and CurrentContracts > CurrentContracts[1] Then
LL = 저[1,1];
즐거운 하루되세요
> 로얄라이프 님이 쓴 글입니다.
> 제목 : 도움 부탁드립니다.
> 기본설명
종목은 검색을 하지않고 한종목을 고정으로 매매 합니다.
기본 매매전략
3분봉으로 지그재그챠트( 전환비율 2) 를 사용하여 지그재그선이 저점을 발생시키면 매수 하고 고점을 발생시키면 매도합니다.
매매전략 상세
매수는 최유리지정가로 합니다. (봉완성시)
매도는 조건부지정가로 합니다. (봉완성시)
매수후 저점을 갱신하여 손실이면 예수금범위안에서 추가매수를 합니다.
매수후 저점갱신의 의미는 지그재그선이 새로이 발생함을 말합니다.
지그재그선이 고점을 발생하더라도 손실이면 매도하지않고 다음고점을 기다립니다.
추신)
자동매매시 최대사용예수금을 지정하고 싶습니다.
예를들면 매수금액을 일천만원으로 해놓으면 계좌에 일천오백만원이 있어도
매매는 일천만원 까지만 사용하는걸로 했으면 합니다.