예스스탁
예스스탁 답변
2020-10-14 13:19:23
안녕하세요
예스스탁입니다.
소리출력함수(playsound)는 함수내에 지정한 경로의 wav파일이 구동됩니다.
아래는 예스트레이더에 기본으로 제공되는 wav파일을 지정했습니다.
원하시는 wav파일의 경로와 이름으로 수정하시기 바랍니다.
게시판에서 식을 복사할 경우 경로명 중 ₩의 폰트가 깨질수 있으므로
₩는 다시 타이핑하시기 바랍니다.
Input:변동률(0.2),레벨(0),
패턴종류(6), // 1:삼각형/패넌트, 2:상승쐐기, 3:하락쐐기, 4:약세깃발, 5:강세깃발, 6:확장형
선두께(3);
Var:행(0),열(0),고점(1),저점(-1),신규(1),연장(2),연속(3),삼선(4),cnt(0),
고라인기울기(0),고라인시작(0),고라인끝(0),
저라인기울기(0),저라인시작(0),저라인끝(0),
시작일(0),시작시각(0),기간(0);
Array:고[10,44](0),저[10,44](0), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime
최종상태[5](0),처리구분[5](0),TL[3](0),TL1[2](0),고0[10,4](0),저0[10,4](0),결과리턴[8](0);
//=========================================================//
If 레벨 <= 4 Then {
Var1 = 레벨 * 10;
Value1 = ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분);
If 최종상태[레벨] == 고점 Then {
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],
고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1]);
TL[1] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
}
}
If 최종상태[레벨] == 저점 Then {
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],
저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1]);
TL[1] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
}
}
} Else {
Alert("4레벨까지만 가능합니다!!");
}
//=========================================================//
기간 = (레벨 + 1) * 20;
cnt = cnt + 1;
If (처리구분[레벨] == 신규 or 처리구분[레벨] == 연속) Then { // 꼭지점 변동사항이 있을 경우
For 행 = 1 To 10 {
For 열 = 1 To 4 { // 패턴을 판단할 레벨만 사용자함수에 전달
고0[행,열] = 고[행,Var1 + 열];
저0[행,열] = 저[행,Var1 + 열];
}
}
Value2 = YHS_Patterns(고0,저0,패턴종류,기간,결과리턴); // 삼각형 패턴의 경우 기간 내에 크로스가 발생
If Value2 == 1 Then // 패턴이 찾아졌다면
{
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
시작일 = 결과리턴[0];
시작시각 = 결과리턴[1];
고라인기울기 = 결과리턴[2];
고라인시작 = 결과리턴[3];
고라인끝 = 결과리턴[4];
저라인기울기 = 결과리턴[5];
저라인시작 = 결과리턴[6];
저라인끝 = 결과리턴[7];
If 고라인기울기[1] == 고라인기울기 and 고라인끝[1] + 고라인기울기 == 고라인끝 Then
TL_SetEnd(TL1[0],sDate,sTime,고라인끝);
Else {
TL1[0] = TL_New(시작일,시작시각,고라인시작,sDate,sTime,고라인끝);
TL_SetColor(TL1[0],RGB(215,0,0));
TL_SetSize(TL1[0],선두께);
}
If 저라인기울기[1] == 저라인기울기 and 저라인끝[1] + 저라인기울기 == 저라인끝 Then
TL_SetEnd(TL1[1],sDate,sTime,저라인끝);
Else {
TL1[1] = TL_New(시작일,시작시각,저라인시작,sDate,sTime,저라인끝);
TL_SetColor(TL1[1],LBLUE);
TL_SetSize(TL1[1],선두께);
}
cnt = 0;
Plot1(고라인끝,"고점추세선",RGB(215,0,0));
Plot2(저라인끝,"저점추세선",LBLUE);
}
}
If cnt > 0 and cnt < (레벨 + 1) * 30 Then {
고라인끝 = 고라인끝 + 고라인기울기;
저라인끝 = 저라인끝 + 저라인기울기;
#If 고라인끝 > 0 Then Plot1(고라인끝,"고점추세선",RGB(215,0,0));
#If 저라인끝 > 0 Then Plot2(저라인끝,"저점추세선",LBLUE);
}
즐거운 하루되세요
> 매버릭 님이 쓴 글입니다.
> 제목 : 알람소리가 나게 수정 좀 부탁 드립니다.
> 안녕하세요? 수고 많으십니다.
첨부화일에서 패턴종류(6번)이 발생했을 때 놓치지 않도록 알람소리를 발생시키는 식을 좀 추가해 주시면 대단히 감사하겠습니다.