예스스탁
예스스탁 답변
2016-03-07 14:32:53
안녕하세요
예스스탁입니다.
양봉음봉은 봉의 종가가 되어야 알수 있습니다.
봉 미완성시에 나오려는 시점은 조건내용으로 알수가 없습니다.
아래식들은 완성봉기준으로 모두 양음봉 판단합니다.
1.
INPUT : LENGTH(10),N(2),P1(20);
VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav1(0),Z(0);
MAV1 = ma(C,20);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if mav1 > mav1[1] Then
Z = 1;
if mav1 < mav1[1] Then
Z = -1;
if Z == 1 and
B == 1 and
CrossDown(L,BCHAN) Then
buy();
if MarketPosition == 1 and mav1 < mav1[1] and C < O Then
exitlong();
if Z == -1 and
T == -1 and
CrossUp(H,TCHAN) Then
Sell();
if MarketPosition == -1 and mav1 > mav1[1] and C > O Then
ExitShort();
2
INPUT : LENGTH(10),N(2),P2(60),P3(10);
VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav2(0),mav3(0),X(0);
MAV2 = ma(C,P2);
MAV3 = ma(C,P3);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if mav2 > mav2[1] Then
X = 1;
if mav2 < mav2[1] Then
X = -1;
if X == 1 and
(B == 1 or T == 1) and
C < mav2 and C > O and C[1] < O[1] Then
buy();
if X == -1 and
(B == -1 or T == -1) and
C > mav2 and C < O and C[1] > O[1] Then
sell();
3
INPUT : LENGTH(10),N(2),P1(20),P2(60),P3(10);
VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav2(0),mav3(0),mav1(0),X(0),Z(0);
MAV2 = ma(C,P2);
MAV3 = ma(C,P3);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if mav1 > mav1[1] Then
Z = 1;
if mav1 < mav1[1] Then
Z = -1;
if mav2 > mav2[1] Then
X = 1;
if mav2 < mav2[1] Then
X = -1;
if Z == 1 and
B == 1 and
CrossDown(L,BCHAN) Then
buy();
if X == 1 and
(B == 1 or T == 1) and
C < mav2 and C > O and C[1] < O[1] Then
buy();
if MarketPosition == 1 and mav1 < mav1[1] and C < O Then
exitlong();
if X == -1 and
(B == -1 or T == -1) and
C > mav2 and C < O and C[1] > O[1] Then
sell();
if Z == -1 and
T == -1 and
CrossUp(H,TCHAN) Then
Sell();
if MarketPosition == -1 and mav1 > mav1[1] and C > O Then
ExitShort();
4
차트간에는 서로 신호정보를 주고받지 못하므로
다른 분봉의 신호는 알수 없습니다.
차트자체에서 계산에 의해 알아내야 하는데
틱봉자체에서는 분봉의 값을 정확히 계산할수 없으므로
해당 부분은 참조데이터로 분봉데이터를 추가해서
수식안에서 조건충족여부를 알수있게 코딩을 해봐야 알수 있습니다.
4
지그재그와 파동과 관련된 부분은 내용상 규격화된 부분은 아닙니다
또한 식 답변을 해드리려면 명확한 규칙을 지정해 주셔야 식을 작성해 드릴수 있습니다.
해당 부분은 랭귀지 게시판에서 지그재그나 파동으로 검색하셔서
내용을 찾아 응용해 보셔야 할것 같습니다.
즐거운 하루되세요
> phn 님이 쓴 글입니다.
> 제목 : 기존 수식에서 조건 추가좀 부탁드립니다~
> 안녕하세요~ 많은 도움을 받으며 수식 공부하고 있습니다.
항상 감사드립니다.
1) 먼저 시스템 신호 수식에서 몇가지 조건을 추가하여 청산과 진입 시점을 수정해 보려고 합니다~
INPUT : LENGTH(10),N(2);
VAR : TCHAN(0), BCHAN(0),T(0),B(0);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if B == 1 and
CrossDown(L,BCHAN) Then
buy();
if T == -1 and
CrossUp(H,TCHAN) Then
Sell();
위 수식에서 20이평선이 상방일때(0도 이상)는 매수 신호만,
하방일때는 매도 신호만 나오게 수정하고
매수 진입 후 이평선이 하방으로 꺽이면 양봉 다음 음봉이 나오려 하는 시점에서 바로 청산하는 조건을 추가하려 합니다~
2) 위 수식 지표에서 위 또는 아래가 상방으로 꺽이고 60일 이평선이 상방일때
음봉이 나온후 10일선 밑에서 음봉이 끝난후 양봉이 나오려 하는 시점에서 바로 매수 진입. 청산은 반대 신호가 나오거나 50일 이평이나 위 지표가 하방으로 꺽이고 양봉 다음 음봉이 시작되는 시점에서 바로 청산.
3) 위의 두가지 수식을 하나로 결합하여 볼수 있을까요?
두가지 수식을 합쳤을때 1번에서 매수 다음 2번에서 매도이면 바로 스위칭 되는것이죠?
각 이평선과 지표의 변수는 변경가능하게 부탁드립니다~
각 분봉과 틱챠트에서 모두 적용이 똑같이 되겠죠?
그리고 틱챠트에서 다른 분봉의 신호를 읽을 수 있나요?
또 만약 매도로 내려오는 흐름에서 지그재그 파동을 이용하여 그 파동의 수를 확인할수 있을까요?
그리고 이전 파동의 고점과 저점의 수치를 일봉과 시간봉 상에서의 고점과 저점을 찾는 방법을 알고 싶습니다~
아직 수식에서 초보라 이렇게 질문을 하게 되었네요~ 잘부탁드립니다
작성해 주신 수식은 잘 받았습니다~ 감사합니다~
그런데 우선 밑에 1번 식에서 이평선의 방향에 맞춰서 신호가 나와야 하는데
현재는 이평선이 하방인데 매수 신호가 나오고 이평선이 상방일때 매도 신호가 나옵니다~
이평선 방향에 맞춰서만 신호가 나올수 있도록 부탁드리고 이평선 수치를 변경해도 그대로 인데 이것도 확인 부탁드립니다.
INPUT : LENGTH(20),N(2),P1(30);
VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav1(0),Z(0);
MAV1 = ma(C,60);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if mav1 > mav1[1] Then
Z = 1;
if mav1 < mav1[1] Then
Z = -1;
if Z == 1 and
B == 1 and
CrossDown(L,BCHAN) Then
buy();
if MarketPosition == 1 and mav1 < mav1[1] and C < O Then
exitlong();
if Z == -1 and
T == -1 and
CrossUp(H,TCHAN) Then
Sell();
if MarketPosition == -1 and mav1 > mav1[1] and C > O Then
ExitShort();
그리고 밑에 2번식에서는 지표 방향과 이평선 방향에 맞춰 신호가 나와야 하는데 반대 방향으로 신호가 나오는 경우가 있습니다~
지표방향은 이전 흐름에서 위,아래 둘중 하나라도 꺽인 방향으로 상, 하방 판단을 하려 합니다~
그리고 청산이 되어 있질 않는것 같은데 이것도 다시한번 부탁드립니다~
이것도 p3의 변수를 다르게 입력해도 안되네요~
그리고 이평선과 지표가 상방을 향해도 매수 신호가 나오지 않는 경우가 생기니 같이 한번 부탁드립니다~
INPUT : LENGTH(20),N(2),P2(30),P3(10);
VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav2(0),mav3(0),X(0);
MAV2 = ma(C,P2);
MAV3 = ma(C,P3);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if mav2 > mav2[1] Then
X = 1;
if mav2 < mav2[1] Then
X = -1;
if X == 1 and
(B == 1 or T == 1) and
C < mav2 and C > O and C[1] < O[1] Then
buy();
if X == -1 and
(B == -1 or T == -1) and
C > mav2 and C < O and C[1] > O[1] Then
sell();
예스스탁
예스스탁 답변
2016-03-07 18:01:16
안녕하세요
예스스탁입니다.
1.
죄송합니다. 이평의 기간을 외부변수로 처리하고
함수식에서는 지정해 놓치 않았습니다.
INPUT : LENGTH(20),N(2),P1(20);
VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav1(0),Z(0);
MAV1 = ma(C,P1);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if mav1 > mav1[1] Then
Z = 1;
if mav1 < mav1[1] Then
Z = -1;
if Z == 1 and
B == 1 and
CrossDown(L,BCHAN) Then
buy();
if MarketPosition == 1 and mav1 < mav1[1] and C < O Then
exitlong();
if Z == -1 and
T == -1 and
CrossUp(H,TCHAN) Then
Sell();
if MarketPosition == -1 and mav1 > mav1[1] and C > O Then
ExitShort();
2
지표방향을 잘못체크했습니다.
수정한 식입니다.
청산은 1번식과 동일한 내용으로 추가했습니다.
INPUT : LENGTH(10),N(2),P1(20),P2(60),P3(10);
VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav2(0),mav3(0),X(0),Y(0),mav1(0);
Mav1 = ma(C,P1);
MAV2 = ma(C,P2);
MAV3 = ma(C,P3);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if mav2 > mav2[1] Then
X = 1;
if mav2 < mav2[1] Then
X = -1;
if T == 1 and T[1] != 1 Then
Y = 1;
if B == 1 and B[1] != 1 Then
Y = 1;
if T == -1 and T[1] != -1 Then
Y = -1;
if B == -1 and B[1] != -1 Then
Y = -1;
if X == 1 and Y == 1 and
C < mav3 and C > O and C[1] < O[1] Then
buy();
if X == -1 and Y == -1 and
C > mav3 and C < O and C[1] > O[1] Then
sell();
if MarketPosition == 1 and mav1 < mav1[1] and C < O Then
exitlong();
if MarketPosition == -1 and mav1 > mav1[1] and C > O Then
ExitShort();
3
INPUT : LENGTH(10),N(2),P1(20),P2(60),P3(10);
VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav2(0),mav3(0),X(0),Y(0),mav1(0),Z(0);
Mav1 = ma(C,P1);
MAV2 = ma(C,P2);
MAV3 = ma(C,P3);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if mav1 > mav1[1] Then
Z = 1;
if mav1 < mav1[1] Then
Z = -1;
if mav2 > mav2[1] Then
X = 1;
if mav2 < mav2[1] Then
X = -1;
if T == 1 and T[1] != 1 Then
Y = 1;
if B == 1 and B[1] != 1 Then
Y = 1;
if T == -1 and T[1] != -1 Then
Y = -1;
if B == -1 and B[1] != -1 Then
Y = -1;
if Z == 1 and
B == 1 and
CrossDown(L,BCHAN) Then
buy();
if X == 1 and Y == 1 and
C < mav3 and C > O and C[1] < O[1] Then
buy();
if Z == -1 and
T == -1 and
CrossUp(H,TCHAN) Then
Sell();
if X == -1 and Y == -1 and
C > mav3 and C < O and C[1] > O[1] Then
sell();
if MarketPosition == 1 and mav1 < mav1[1] and C < O Then
exitlong();
if MarketPosition == -1 and mav1 > mav1[1] and C > O Then
ExitShort();
즐거운 하루되세요
> phn 님이 쓴 글입니다.
> 제목 : Re : Re : 기존 수식에서 조건 추가좀 부탁드립니다~
> 작성해 주신 수식은 잘 받았습니다~ 감사합니다~
그런데 우선 밑에 1번 식에서 이평선의 방향에 맞춰서 신호가 나와야 하는데
현재는 이평선이 하방인데 매수 신호가 나오고 이평선이 상방일때 매도 신호가 나옵니다~
이평선 방향에 맞춰서만 신호가 나올수 있도록 부탁드리고 이평선 수치를 변경해도 그대로 인데 이것도 확인 부탁드립니다.
INPUT : LENGTH(20),N(2),P1(30);
VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav1(0),Z(0);
MAV1 = ma(C,60);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if mav1 > mav1[1] Then
Z = 1;
if mav1 < mav1[1] Then
Z = -1;
if Z == 1 and
B == 1 and
CrossDown(L,BCHAN) Then
buy();
if MarketPosition == 1 and mav1 < mav1[1] and C < O Then
exitlong();
if Z == -1 and
T == -1 and
CrossUp(H,TCHAN) Then
Sell();
if MarketPosition == -1 and mav1 > mav1[1] and C > O Then
ExitShort();
그리고 밑에 2번식에서는 지표 방향과 이평선 방향에 맞춰 신호가 나와야 하는데 반대 방향으로 신호가 나오는 경우가 있습니다~
지표방향은 이전 흐름에서 위,아래 둘중 하나라도 꺽인 방향으로 상, 하방 판단을 하려 합니다~
그리고 청산이 되어 있질 않는것 같은데 이것도 다시한번 부탁드립니다~
이것도 p3의 변수를 다르게 입력해도 안되네요~
그리고 이평선과 지표가 상방을 향해도 매수 신호가 나오지 않는 경우가 생기니 같이 한번 부탁드립니다~
INPUT : LENGTH(20),N(2),P2(30),P3(10);
VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav2(0),mav3(0),X(0);
MAV2 = ma(C,P2);
MAV3 = ma(C,P3);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
if TCHAN > TCHAN[1] Then
T = 1;
if TCHAN < TCHAN[1] Then
T = -1;
if BCHAN > BCHAN[1] Then
B = 1;
if BCHAN < BCHAN[1] Then
B = -1;
if mav2 > mav2[1] Then
X = 1;
if mav2 < mav2[1] Then
X = -1;
if X == 1 and
(B == 1 or T == 1) and
C < mav2 and C > O and C[1] < O[1] Then
buy();
if X == -1 and
(B == -1 or T == -1) and
C > mav2 and C < O and C[1] > O[1] Then
sell();