예스스탁
예스스탁 답변
2020-11-06 17:11:28
안녕하세요
예스스탁입니다.
문의하신 내용을 구현하기 위해서는 고점과 저점에 대한 규정이 필요합니다.
별도로 고점과 저점에 대한 내용이 없어 다른 사용자분이 작성해서 공개한
지그재그수식을 이용해 작성해 드립니다.
아래수식 참고하셔서 수정보완해 사용하시기 바랍니다.
고점연결과 저점연결선은 최근것만 표시됩니다.
Input : length(10),고점하락틱수(10),저점상승틱수(10);
var : 추세두께(0),추세상승색(red),추세하락색(blue);
var : 고점연결두께(3),고점연결색상(LGREEN);
var : 저점연결두께(3),저점연결색상(MAGENTA);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),TL11(0),TL12(0);
Array:고[10,4](0),저[10,4](0);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
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
{
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,추세두께);
TL_SetColor(TL1,추세상승색);
if 저[1,1] > 저[2,1]+저점상승틱수*PriceScale Then
{
TL_Delete(TL11);
TL11 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]);
TL_SetExtRight(TL11,true);
TL_SetColor(TL11,저점연결색상);
TL_SetSize(TL11,저점연결두께);
}
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,추세두께);
TL_SetColor(TL1,추세하락색);
if 고[1,1] < 고[2,1]-고점하락틱수*PriceScale Then
{
TL_Delete(TL12);
TL12 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]);
TL_SetExtRight(TL12,true);
TL_SetColor(TL12,고점연결색상);
TL_SetSize(TL12,고점연결두께);
}
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
}
if MarketPosition <= 0 and
C >= TL_GetValue(TL12,sDate,sTime) and C[1] < TL_GetValue(TL12,sDate[1],sTime[1]) Then
Buy();
if MarketPosition == 1 and
C <= TL_GetValue(TL12,sDate,sTime) and C[1] > TL_GetValue(TL12,sDate[1],sTime[1]) Then
ExitLong();
if MarketPosition >= 0 and
C <= TL_GetValue(TL11,sDate,sTime) and C[1] > TL_GetValue(TL11,sDate[1],sTime[1]) Then
Sell();
if MarketPosition == 1 and
C >= TL_GetValue(TL11,sDate,sTime) and C[1] < TL_GetValue(TL11,sDate[1],sTime[1]) Then
ExitShort();
즐거운 하루되세요
> 김완배 님이 쓴 글입니다.
> 제목 : 수식문의 드립니다.
> 저점과 저점,고점과 고점을 연결하는 우측 확장형 추세선을 기준으로 하여
진입과 청산수식을 만들고 싶은데 도저히 불가능하여 문의 드립니다.
1-고점과 고점을 잊는 우측확장형 추세선 상방돌파 및 하방이탈 식:
이전의 고점을 상방돌파하지 못하는 쌍 봉 출현 시 봉의 최고 점과 최고 점을
연결하는 우측 확장 형 추세선 형성 후 현재봉이 이 추세선을 상방돌파 시 매수신호 및
하방으로 재 이탈시 청산신호
1-저점과 저점을 잊는 우측확장형 추세선 하방이탈 및 상방돌파식:
이전의 저점을 하방이탈하지 못하는 W자형 쌍봉 출현시 봉의 최저점과 최저점을
연결하는 우측 확장형 추세선 형성 후 현재봉이 이 추세선을 하방돌파시 매도신호 및
상방으로 재 돌파시 청산신호
여기에서 제1봉의 크기와 제2봉의 크기를지표조건으로 설정값을 주어서 일정 크기
이상에서만 구동될수 있도록 하고싶습니다.
그림 첨부하였습니다.
위 수식을 만들고 싶습니다.
제 능력으로는 도저히 불가능하여 문의 드립니다.
어떻게 어디에 의뢰를 해야 만들수있는지라도 좀 알고싶습니다.