예스스탁
예스스탁 답변
2025-05-23 13:26:40
안녕하세요
예스스탁입니다.
예스랭귀지에서는 지표와 신호함수를 같이 사용할 수 없습니다.
지표식과 시스템식 2개 작성해 드립니다.
1
Input:
len(10), FC(1), SC(150),
TP_Ratio(0.985), SL_Ratio(1.01), 진입수량(1);
Var:
Price(0), Len1(0), w(0),
H1(0), L1(0), N1(0),
H2(0), L2(0), N2(0),
H3(0), L3(0), N3(0),
dimen1(0), dimen(0), alpha1(0), oldalpha(0),
oldN(0), N(0), alpha_(0), alpha(0), out(0),
진입가(0), TP(0), SL(0), posFlag(0), tx(0);
// FRAMA 계산
Price = (H + L) / 2;
len1 = len / 2;
w = log(2 / (SC + 1));
H1 = highest(H, len1);
L1 = lowest(L, len1);
N1 = (H1 - L1) / len1;
H2 = highest(H, len)[len1];
L2 = lowest(L, len)[len1];
N2 = (H2 - L2) / len1;
H3 = highest(H, len);
L3 = lowest(L, len);
N3 = (H3 - L3) / len;
dimen1 = (log(N1 + N2) - log(N3)) / log(2);
dimen = iff(N1 > 0 and N2 > 0 and N3 > 0, dimen1, iff(isnan(dimen1[1]), 0, dimen1[1]));
alpha1 = exp(w * (dimen - 1));
oldalpha = iff(alpha1 > 1, 1, iff(alpha1 < 0.01, 0.01, alpha1));
oldN = (2 - oldalpha) / oldalpha;
N = (((SC - FC) * (oldN - 1)) / (SC - 1)) + FC;
alpha_ = 2 / (N + 1);
alpha = iff(alpha_ < 2 / (SC + 1), 2 / (SC + 1), iff(alpha_ > 1, 1, alpha_));
out = (1 - alpha) * iff(isnan(out[1]), 0, out[1]) + alpha * Price;
// 진입 조건
If Close < out and Close[1] >= out[1] and posFlag == 0 Then
Begin
#Sell("FRAMA Short",AtMarket);
진입가 = Close;
TP = 진입가 * TP_Ratio;
SL = 진입가 * SL_Ratio;
posFlag = -1;
tx = Text_New(Date, Time, High, "진입조건만족");
Text_SetColor(tx, Red);
End;
// 청산 조건
If posFlag == -1 Then
Begin
If Close <= TP or Close >= SL Then
Begin
#exitshort("청산",AtMarket);
posFlag = 0;
End;
End;
// 시각화
Plot1(out, "FRAMA", Blue);
2 시스템
Input:
len(10), FC(1), SC(150),
TP_Ratio(0.985), SL_Ratio(1.01), 진입수량(1);
Var:
Price(0), Len1(0), w(0),
H1(0), L1(0), N1(0),
H2(0), L2(0), N2(0),
H3(0), L3(0), N3(0),
dimen1(0), dimen(0), alpha1(0), oldalpha(0),
oldN(0), N(0), alpha_(0), alpha(0), out(0),
진입가(0), TP(0), SL(0), posFlag(0), tx(0);
// FRAMA 계산
Price = (H + L) / 2;
len1 = len / 2;
w = log(2 / (SC + 1));
H1 = highest(H, len1);
L1 = lowest(L, len1);
N1 = (H1 - L1) / len1;
H2 = highest(H, len)[len1];
L2 = lowest(L, len)[len1];
N2 = (H2 - L2) / len1;
H3 = highest(H, len);
L3 = lowest(L, len);
N3 = (H3 - L3) / len;
dimen1 = (log(N1 + N2) - log(N3)) / log(2);
dimen = iff(N1 > 0 and N2 > 0 and N3 > 0, dimen1, iff(isnan(dimen1[1]), 0, dimen1[1]));
alpha1 = exp(w * (dimen - 1));
oldalpha = iff(alpha1 > 1, 1, iff(alpha1 < 0.01, 0.01, alpha1));
oldN = (2 - oldalpha) / oldalpha;
N = (((SC - FC) * (oldN - 1)) / (SC - 1)) + FC;
alpha_ = 2 / (N + 1);
alpha = iff(alpha_ < 2 / (SC + 1), 2 / (SC + 1), iff(alpha_ > 1, 1, alpha_));
out = (1 - alpha) * iff(isnan(out[1]), 0, out[1]) + alpha * Price;
// 진입 조건
If Close < out and Close[1] >= out[1] and posFlag == 0 Then
Begin
Sell("FRAMA Short",AtMarket);
진입가 = Close;
TP = 진입가 * TP_Ratio;
SL = 진입가 * SL_Ratio;
posFlag = -1;
tx = Text_New(Date, Time, High, "진입조건만족");
Text_SetColor(tx, Red);
End;
// 청산 조건
If posFlag == -1 Then
Begin
If Close <= TP or Close >= SL Then
Begin
exitshort("청산",AtMarket);
posFlag = 0;
End;
End;
즐거운 하루되세요
> 윤호석 님이 쓴 글입니다.
> 제목 : 부탁드립니다 항상 감사합니다
> Input:
len(10), FC(1), SC(150),
TP_Ratio(0.985), SL_Ratio(1.01), 진입수량(1);
Var:
Price(0), Len1(0), w(0),
H1(0), L1(0), N1(0),
H2(0), L2(0), N2(0),
H3(0), L3(0), N3(0),
dimen1(0), dimen(0), alpha1(0), oldalpha(0),
oldN(0), N(0), alpha_(0), alpha(0), out(0),
진입가(0), TP(0), SL(0), posFlag(0), tx(0);
// FRAMA 계산
Price = (H + L) / 2;
len1 = len / 2;
w = log(2 / (SC + 1));
H1 = highest(H, len1);
L1 = lowest(L, len1);
N1 = (H1 - L1) / len1;
H2 = highest(H, len)[len1];
L2 = lowest(L, len)[len1];
N2 = (H2 - L2) / len1;
H3 = highest(H, len);
L3 = lowest(L, len);
N3 = (H3 - L3) / len;
dimen1 = (log(N1 + N2) - log(N3)) / log(2);
dimen = iff(N1 > 0 and N2 > 0 and N3 > 0, dimen1, iff(isnan(dimen1[1]), 0, dimen1[1]));
alpha1 = exp(w * (dimen - 1));
oldalpha = iff(alpha1 > 1, 1, iff(alpha1 < 0.01, 0.01, alpha1));
oldN = (2 - oldalpha) / oldalpha;
N = (((SC - FC) * (oldN - 1)) / (SC - 1)) + FC;
alpha_ = 2 / (N + 1);
alpha = iff(alpha_ < 2 / (SC + 1), 2 / (SC + 1), iff(alpha_ > 1, 1, alpha_));
out = (1 - alpha) * iff(isnan(out[1]), 0, out[1]) + alpha * Price;
// 진입 조건
If Close < out and Close[1] >= out[1] and posFlag = 0 Then
Begin
SellShort("FRAMA Short") next bar at market;
진입가 = Close;
TP = 진입가 * TP_Ratio;
SL = 진입가 * SL_Ratio;
posFlag = -1;
tx = Text_New(Date, Time, High, "진입조건만족");
Text_SetColor(tx, Red);
End;
// 청산 조건
If posFlag = -1 Then
Begin
If Close <= TP or Close >= SL Then
Begin
BuyToCover("청산") next bar at market;
posFlag = 0;
End;
End;
// 시각화
Plot1(out, "FRAMA", Blue);
지표로 적용할수있게 수정부탁드립니다 감사합니다!!