커뮤니티

다음의 수식을 기반으로 수정부탁드립니다

프로필 이미지
알리섬
2025-12-30 10:01:41
67
글번호 229459
답변완료

안녕하세요 다음수식을 신호로 소리가 나도록 해주세요

Vars:

TotalMin(0),

Remain(0),

SignalFired(false),

PlotVal(0);


/* 1. 현재 시각(HHMMSS)을 분 단위로 환산 */

TotalMin = Floor(Time / 10000) * 60 + Floor(FracPortion(Time / 10000) * 100);


/* 2. 현재 차트 주기(BarInterval)를 기준으로 나머지 계산 */

/* 3분봉이면 3으로 나누고, 15분봉이면 15로 나눕니다. */

Remain = TotalMin % BarInterval;


/* 3. 실시간 마지막 봉 + 마감 1분 전(주기 - 1)일 때 신호 발생 */

If LastBarOnChart == true Then

Begin

/* (BarInterval - 1)분 00초 ~ 59초 구간 */

/* 예: 15분봉이면 14분대일 때 작동 */

If Remain == BarInterval - 1 Then

Begin

If SignalFired == false Then

Begin

PlotVal = High;

Alert("%d분봉 마감 약 1분 전입니다.", BarInterval);

SignalFired = true;

End;

End

Else

Begin

/* 마감 1분 전 구간을 벗어나면 리셋 */

SignalFired = false;

PlotVal = 0;

End;

End;


/* 4. 출력 */

Plot1(PlotVal, "SignalPoint");

시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-12-30 14:05:12

안녕하세요 예스스탁입니다. 올려주신 내용으로는 시스템식 작성이 가능하지 않습니다. 기본적으로 시스템은 진입과 청산이 있어야 신호가 반복적으로 발생할 수 있거 올리신 수식은 차트 마지막봉에만 표시를 하는 내용인데 시스템은 해당 조건으로 가능하지 않습니다. 소리출력만 추가해 드립니다. 소리출력함수(playsound)는 함수내에 지정한 경로의 wav파일이 구동됩니다. 아래는 예스트레이더에 기본으로 제공되는 wav파일을 지정했습니다. 원하시는 wav파일의 경로와 이름으로 수정하시기 바랍니다. 게시판에서 식을 복사할 경우 경로명 중 ₩의 폰트가 깨질수 있으므로 ₩는 다시 타이핑하시기 바랍니다. Vars: TotalMin(0), Remain(0), SignalFired(false), PlotVal(0); /* 1. 현재 시각(HHMMSS)을 분 단위로 환산 */ TotalMin = Floor(Time / 10000) * 60 + Floor(FracPortion(Time / 10000) * 100); /* 2. 현재 차트 주기(BarInterval)를 기준으로 나머지 계산 */ /* 3분봉이면 3으로 나누고, 15분봉이면 15로 나눕니다. */ Remain = TotalMin % BarInterval; /* 3. 실시간 마지막 봉 + 마감 1분 전(주기 - 1)일 때 신호 발생 */ If LastBarOnChart == true Then Begin /* (BarInterval - 1)분 00초 ~ 59초 구간 */ /* 예: 15분봉이면 14분대일 때 작동 */ If Remain == BarInterval - 1 Then Begin If SignalFired == false Then Begin PlotVal = High; Alert("%d분봉 마감 약 1분 전입니다.", BarInterval); SignalFired = true; PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); End; End Else Begin /* 마감 1분 전 구간을 벗어나면 리셋 */ SignalFired = false; PlotVal = 0; End; End; /* 4. 출력 */ Plot1(PlotVal, "SignalPoint"); 새해 복 많이 받으세요