예스스탁
예스스탁 답변
2023-08-28 11:16:02
안녕하세요
예스스탁입니다.
1
input : left(5),right(5);
var : tcond(False),count(0);
if sdate >= 20230807 and sTime >= 103000 Then
Tcond = true;
if sdate >= 20230811 and sTime >= 170000 Then
Tcond = False;
if Tcond == true Then
{
if SwingLow(1,L,Left,right,Left+right+1) != -1 Then
{
count = count+1;
}
}
Plot1(count);
2
input : left(5),right(5),N(5);
var : tcond(False),cnt(0),sum(0);
Array : count[10](0);
if Bdate != Bdate[1] Then
{
For cnt = 9 DownTo 1
{
count[cnt] = count[cnt-1];
}
count[0] = 0;
}
if SwingLow(1,L,Left,right,Left+right+1) != -1 Then
{
count[0] = count[0]+1;
}
sum = 0;
For cnt = 1 to N
{
sum = sum + count[cnt];
}
Plot1(sum);
3
a에서 사용한 atlimit 신호타입은 가격을 셋팅하고 현재가와 비교해서 즉시 신호를 발생하는 타입니다.
b와 같이 별도로 신호타입을 지정하지 않으면 onclose이고 봉완성시 신호 발생입니다.
신호타입과 관련된 자세한 내용은 랭귀지 도움말 참고하시기 바랍니다.
4
이름만 다르고 같은 함수입니다.
5
식에 인덱스 저장하는 변수가 빠져있었습니다.
수정한 식입니다.
input : left(3),right(3);
var : sl1(0),sl2(0),sh1(0),sh2(0);
var : slb1(0),slb2(0),shb1(0),shb2(0);
if SwingLow(1,L,Left,right,Left+right+1) != -1 Then
{
sl1 = l[right];
sl2 = sl1[1];
slb1 = Index[1];
slb2 = slb1[1];
#최근저점이 전저점보다 크면 매수
if SL1 > SL2 and SL2 > 0 and shb2 >= Index-20 and shb2 <= Index+6 Then
buy();
}
if SwingHigh(1,H,Left,right,Left+right+1) != -1 Then
{
sh1 = h[right];
sh2 = sh1[1];
shb1 = Index[right];
shb2 = shb1[1];
#최근고점이 전고점보다 작으면 매도
if SH1 < SH2 and SH2 > 0 and shb2 >= Index-20 and shb2 <= Index+6 Then
sell();
}
6
스윙로우는 발생여부를 체크하는 내용입니다.
스윙로우는 지정한 봉수안에 발생하면 발생하면 0보다 큰값을 아니면 -1을 리턴합니다.
현재봉 지정한 Left,right 조건을 충족하는 스윙로우가 발생했다는 의미입니다.
if SwingLow(1,L,Left,right,Left+right+1) != -1 Then
즐거운 하루되세요
> 코퍼 님이 쓴 글입니다.
> 제목 : swinghigh
> 안녕하세요?
SwingHigh, SwingHighBar를 시간과 조합하려니 어렵습니다
1. 8월7일 10시30분 ~ 8월11일 17시00분 사이에 발생한 SwingHigh 갯수와 값을 구할 수 있나요?
Leftbar : 5
Rightbar :5
2. 상기 1번문의에서 같은 값을 어제부터 이전 5일간 구하는방법?
3.백테가 아닌 실거래에서 a는 조건가격을 아래에서 위로 통과시 동작하는데
b는 봉마감후 동작인가요 아니면 어떻게 동작하나요?
a: ExitLong("pb1",AtLimit,DayOpen+100);
b: if close>DayOpen+100 Then ExitLong("pb1");
4. barindex와 index는 같은 함수인가요?
5. sh2는 가격인데 어떻게 아래와 같이 사용가능하나요?
if sh2 >= Index-20 Then buy();
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : swing
>
안녕하세요
예스스탁입니다.
2번 조건만 추가해 드립니다.
해당 식에서 스윙하이와 스윙로우의 우측 봉수가 right이고
스윙하이나 스윙로우가 발생하면 이전값과 비교해 신호가 발생합니다.
그러므로 SL1, SH1은 항상 right봉전으로 고정값입니다.
input : left(3),right(3);
var : sl1(0),sl2(0),sh1(0),sh2(0);
if SwingLow(1,L,Left,right,Left+right+1) != -1 Then
{
sl1 = l[right];
sl2 = sl1[1];
#최근저점이 전저점보다 크면 매수
if SL1 > SL2 and SL2 > 0 and sh2 >= Index-20 and sh2 <= Index+6 Then
buy();
}
6. 아래 문장(5번문의)의 역할은 무엇인가요?
if SwingLow(1,L,Left,right,Left+right+1) != -1 Then