커뮤니티
코딩오류 보완방법 문의
2026-08-19 12:31:16
36
글번호 233306
작성된 코드에서 오류창의 내용을 봐도 어느부분을 어떻게 수정하라는 내용인지 모르겠어서 질의 합니다.
답변 1
예스스탁 예스스탁 답변
2026-08-19 16:14:17
안녕하세요
예스스탁입니다.
첨부하신 그림의 수식 내용은 예스랭귀지 수식이 아닙니다.
타프로그램의 수식은 그대로 사용이 가능하지 않습니다.
예스랭귀지 문법으로 새로 작성하셔야 합니다.
5분봉 차트에 적용하는 내용으로 보고 매수-매수청산하는 내용으로 작성해 드립니다.
시스템은 계좌정보를 알수 없으므로 적용시 설정창의 비용수량탭에서
수량이나 금액으로 직접 지정하시면 됩니다.
input : long_percent(0.1),Profit_target(0.05);
var : daily_close(0),daily_sma7(0),daily_sma28(0);
var : daily_sma7_prev(0),daily_sma28_prev(0);
var : i(0);
var : sum1(0),sum2(0),sum3(0),sum4(0);
var : daily_golden(False),daily_death(False);
var : par_sar_5m(0),par_signal_5m(0),par_signal_5m_prev(0);
var : par_color_change_to_red(False),entry_condition(False);
daily_close = DayClose(0);
sum1 = 0;
sum2 = 0;
For i = 0 to 6
{
sum1 = sum1 + DayClose(i);
sum2 = sum2 + DayClose(i+1);
}
daily_sma7 = sum1/7;
daily_sma7_prev = sum2/7;
sum3 = 0;
sum4 = 0;
For i = 0 to 27
{
sum3 = sum3 + DayClose(i);
sum4 = sum4 + DayClose(i+1);
}
daily_sma28 = sum3/28;
daily_sma28_prev = sum4/28;
daily_golden = daily_sma7 >= daily_sma28 and daily_sma7_prev < daily_sma28_prev;
daily_death = daily_sma7 <= daily_sma28 and daily_sma7_prev > daily_sma28_prev;
par_sar_5m = Sar(0.02,0.2);
par_signal_5m = iff(c > par_sar_5m,1,0);
par_signal_5m_prev = par_signal_5m[1];
par_color_change_to_red = par_signal_5m_prev == 1 and par_signal_5m == 0;
entry_condition = daily_golden and par_color_change_to_red;
if entry_condition and MarketPosition == 0 Then
Buy("b");
if MarketPosition == 1 Then
{
if c/AvgEntryPrice-1 >= Profit_target then
ExitLong("bx1");
if daily_death then
ExitLong("bx2");
}
즐거운 하루되세요