예스스탁
예스스탁 답변
2025-05-19 17:51:55
안녕하세요
예스스탁입니다.
1
Input: 익절비율(1.02), 손절비율(0.992), 기준거래량배수(2),
atrMult(3.0), atrLen(10);
Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false), 기준거래량(0);
Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0);
Var: A(0), ST(0), Up(0), Dn(0), PrevST(0);
Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0);
Var: Plot익절(0), Plot손절(0), Plot승률(0);
// SuperTrend 계산
A = ma(TrueRange, atrLen);
Up = (High + Low)/2 + atrMult * A;
Dn = (High + Low)/2 - atrMult * A;
If CurrentBar == 1 Then PrevST = 0;
If Close > PrevST Then ST = Dn; Else ST = Up;
PrevST = ST;
// 지표 계산
기준거래량 = ma(Volume, 20);
RSI값 = RSI(14);
BB상단 = BollBandUp(20, 2);
BB하단 = BollBandDown(20, 2);
BB중심 = ma(Close, 20);
// === 롱 진입 ===
If 진입중 == false and 숏진입중 == false and Volume > 기준거래량 * 기준거래량배수
and Close > BB상단 and RSI값 < 70 and Close > ST Then
Begin
진입가 = Close;
익절가 = 진입가 * 익절비율;
손절가 = 진입가 * 손절비율;
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
// === 숏 진입 ===
If 진입중 == false and 숏진입중 == false and Volume > 기준거래량 * 기준거래량배수
and Close < BB하단 and RSI값 > 30 and Close < ST Then
Begin
진입가 = Close;
익절가 = 진입가 * (2 - 익절비율);
손절가 = 진입가 * (2 - 손절비율);
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (진입가 - 익절가) / (손절가 - 진입가);
숏진입중 = true;
End;
// === 롱 청산 ===
If 진입중 == true Then
Begin
If Close >= 익절가 or Close <= 손절가 or RSI값 >= 75 Then
Begin
If Close >= 익절가 Then 승거래 = 승거래+ 1;
진입중 = false;
총거래 = 총거래+1;
End;
End;
// === 숏 청산 ===
If 숏진입중 == true Then
Begin
If Close <= 익절가 or Close >= 손절가 or RSI값 <= 25 Then
Begin
If Close <= 익절가 Then 승거래 = 승거래+1;
숏진입중 = false;
총거래 = 총거래+1;
End;
End;
// === Plot 시각화 (안정성 강화 버전) ===
진입상태 = IFF(진입중 == true or 숏진입중 == true, 1, 0);
Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0);
Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0);
Plot승률 = IFF(총거래 > 0, 100 * 승거래 / 총거래, 0);
Plot1(진입상태, "진입여부");
Plot2(Plot익절, "익절가");
Plot3(Plot손절, "손절가");
Plot4(Plot승률, "승률(%)");
2
Input: 익절포인트(30), 손절포인트(12), 기준거래량(10000),
atrMult(3.0), atrLen(10);
Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false);
Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0);
Var: A(0), ST(0), Up(0), Dn(0), PrevST(0);
Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0);
Var: Plot익절(0), Plot손절(0), Plot승률(0);
// SuperTrend 계산
A = ma(TrueRange, atrLen);
Up = (High + Low)/2 + atrMult * A;
Dn = (High + Low)/2 - atrMult * A;
If CurrentBar == 1 Then PrevST = 0;
If Close > PrevST Then ST = Dn; Else ST = Up;
PrevST = ST;
// 지표 계산
RSI값 = RSI(14);
BB상단 = BollBandUp(20, 2);
BB하단 = BollBandDown(20, 2);
BB중심 = ma(Close, 20);
// === 롱 진입 ===
If 진입중 == false and 숏진입중 == false and Volume > 기준거래량
and Close > BB상단 and RSI값 < 70 and Close > ST Then
Begin
진입가 = Close;
익절가 = 진입가 + 익절포인트 * PriceScale;
손절가 = 진입가 - 손절포인트 * PriceScale;
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
// === 숏 진입 ===
If 진입중 == false and 숏진입중 == false and Volume > 기준거래량
and Close < BB하단 and RSI값 > 30 and Close < ST Then
Begin
진입가 = Close;
익절가 = 진입가 - 익절포인트 * PriceScale;
손절가 = 진입가 + 손절포인트 * PriceScale;
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (진입가 - 익절가) / (손절가 - 진입가);
숏진입중 = true;
End;
// === 롱 청산 ===
If 진입중 == true Then
Begin
If Close >= 익절가 or Close <= 손절가 or RSI값 >= 75 Then
Begin
If Close >= 익절가 Then 승거래 = 승거래+ 1;
진입중 = false;
총거래 = 총거래+ 1;
End;
End;
// === 숏 청산 ===
If 숏진입중 == true Then
Begin
If Close <= 익절가 or Close >= 손절가 or RSI값 <= 25 Then
Begin
If Close <= 익절가 Then 승거래 = 승거래+ 1;
숏진입중 = false;
총거래 = 총거래+1;
End;
End;
// === Plot 시각화 (안정성 강화 버전) ===
진입상태 = IFF(진입중 == true or 숏진입중 == true, 1, 0);
Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0);
Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0);
Plot승률 = IFF(총거래 > 0, 100 * 승거래 / 총거래, 0);
Plot1(진입상태, "진입여부");
Plot2(Plot익절, "익절가");
Plot3(Plot손절, "손절가");
Plot4(Plot승률, "승률(%)");
3
Input: 익절포인트(30), 손절포인트(12), 기준거래량(10000),
atrMult(3.0), atrLen(10),
수동진입가(0), 수동익절가(0), 수동손절가(0), 수동모드(false);
Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false);
Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0);
Var: A(0), ST(0), Up(0), Dn(0), PrevST(0);
Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0);
Var: Plot익절(0), Plot손절(0), Plot승률(0);
// SuperTrend 계산
If CurrentBar == 1 Then PrevST = Close;
A = ma(TrueRange, atrLen);
Up = (High + Low)/2 + atrMult * A;
Dn = (High + Low)/2 - atrMult * A;
If Close > PrevST Then ST = Dn; Else ST = Up;
PrevST = ST;
// 지표 계산
RSI값 = RSI(14);
BB상단 = BollBandUp(20, 2);
BB하단 = BollBandDown(20, 2);
BB중심 = ma(C,20);
// === 자동 진입 조건 ===
If 수동모드 == false and 진입중 == false and 숏진입중 == false and Volume > 기준거래량 and
Close > BB상단 and RSI값 < 70 and Close > ST Then
Begin
진입가 = Close;
익절가 = 진입가 + 익절포인트 * PriceScale;
손절가 = 진입가 - 손절포인트 * PriceScale;
If (진입가 > 0 and 손절가 > 0 and AbsValue(진입가 - 손절가) > 0.00001) Then
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
If 수동모드 == false and 진입중 == false and 숏진입중 == false and Volume > 기준거래량 and
Close < BB하단 and RSI값 > 30 and Close < ST Then
Begin
진입가 = Close;
익절가 = 진입가 - 익절포인트 * PriceScale;
손절가 = 진입가 + 손절포인트 * PriceScale;
If (진입가 > 0 and 손절가 > 0 and AbsValue(진입가 - 손절가) > 0.00001) Then
손익비 = (진입가 - 익절가) / (손절가 - 진입가);
숏진입중 = true;
End;
// === 수동 모드 진입 ===
If 수동모드 == true and 진입중 == false and 숏진입중 == false and
수동진입가 > 0 and 수동익절가 > 0 and 수동손절가 > 0 and
AbsValue(수동진입가 - 수동손절가) > 0.00001 Then
Begin
진입가 = 수동진입가;
익절가 = 수동익절가;
손절가 = 수동손절가;
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
// === 롱 청산 ===
If 진입중 == true Then
Begin
If 익절가 > 0 and 손절가 > 0 and
(Close >= 익절가 or Close <= 손절가 or RSI값 >= 75) Then
Begin
If Close >= 익절가 Then 승거래 = 승거래+1;
진입중 = false;
총거래 = 총거래+1;
End;
End;
// === 숏 청산 ===
If 숏진입중 = true Then
Begin
If 익절가 > 0 and 손절가 > 0 and
(Close <= 익절가 or Close >= 손절가 or RSI값 <= 25) Then
Begin
If Close <= 익절가 Then 승거래 = 승거래+1;
숏진입중 = false;
총거래 = 총거래+1;
End;
End;
// === Plot 시각화 ===
진입상태 = IFF(진입중 == true or 숏진입중 == true, 1, 0);
Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0);
Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0);
Plot승률 = IFF(총거래 > 0 and 승거래 >= 0, 100 * 승거래 / 총거래, 0);
Plot1(진입상태, "진입여부");
Plot2(Plot익절, "익절가");
Plot3(Plot손절, "손절가");
Plot4(Plot승률, "승률(%)");
즐거운 하루되세요
> 윤호석 님이 쓴 글입니다.
> 제목 : 부탁드립니다 항상 감사합니다
> 10// ✅ 예스트레이더 코인용 최종 안정화 Plot 버전 (Invalid argument(22) 완전 차단)
Input: 익절비율(1.02), 손절비율(0.992), 기준거래량배수(2),
atrMult(3.0), atrLen(10);
Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false), 기준거래량(0);
Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0);
Var: ATR(0), ST(0), Up(0), Dn(0), PrevST(0);
Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0);
Var: Plot익절(0), Plot손절(0), Plot승률(0);
// SuperTrend 계산
ATR = Average(TrueRange, atrLen);
Up = (High + Low)/2 + atrMult * ATR;
Dn = (High + Low)/2 - atrMult * ATR;
If CurrentBar = 1 Then PrevST = 0;
If Close > PrevST Then ST = Dn Else ST = Up;
PrevST = ST;
// 지표 계산
기준거래량 = Average(Volume, 20);
RSI값 = RSI(Close, 14);
BB상단 = BollBandUp(Close, 20, 2);
BB하단 = BollBandDn(Close, 20, 2);
BB중심 = Average(Close, 20);
// === 롱 진입 ===
If 진입중 = false and 숏진입중 = false and Volume > 기준거래량 * 기준거래량배수
and Close > BB상단 and RSI값 < 70 and Close > ST Then
Begin
진입가 = Close;
익절가 = 진입가 * 익절비율;
손절가 = 진입가 * 손절비율;
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
// === 숏 진입 ===
If 진입중 = false and 숏진입중 = false and Volume > 기준거래량 * 기준거래량배수
and Close < BB하단 and RSI값 > 30 and Close < ST Then
Begin
진입가 = Close;
익절가 = 진입가 * (2 - 익절비율);
손절가 = 진입가 * (2 - 손절비율);
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (진입가 - 익절가) / (손절가 - 진입가);
숏진입중 = true;
End;
// === 롱 청산 ===
If 진입중 = true Then
Begin
If Close >= 익절가 or Close <= 손절가 or RSI값 >= 75 Then
Begin
If Close >= 익절가 Then 승거래 += 1;
진입중 = false;
총거래 += 1;
End;
End;
// === 숏 청산 ===
If 숏진입중 = true Then
Begin
If Close <= 익절가 or Close >= 손절가 or RSI값 <= 25 Then
Begin
If Close <= 익절가 Then 승거래 += 1;
숏진입중 = false;
총거래 += 1;
End;
End;
// === Plot 시각화 (안정성 강화 버전) ===
진입상태 = IFF(진입중 = true or 숏진입중 = true, 1, 0);
Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0);
Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0);
Plot승률 = IFF(총거래 > 0, 100 * 승거래 / 총거래, 0);
Plot1(진입상태, "진입여부");
Plot2(Plot익절, "익절가");
Plot3(Plot손절, "손절가");
Plot4(Plot승률, "승률(%)");
2.// ✅ E-mini Nasdaq 100 전용 안정화 Plot 버전 (포인트 기반 청산)
Input: 익절포인트(30), 손절포인트(12), 기준거래량(10000),
atrMult(3.0), atrLen(10);
Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false);
Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0);
Var: ATR(0), ST(0), Up(0), Dn(0), PrevST(0);
Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0);
Var: Plot익절(0), Plot손절(0), Plot승률(0);
// SuperTrend 계산
ATR = Average(TrueRange, atrLen);
Up = (High + Low)/2 + atrMult * ATR;
Dn = (High + Low)/2 - atrMult * ATR;
If CurrentBar = 1 Then PrevST = 0;
If Close > PrevST Then ST = Dn Else ST = Up;
PrevST = ST;
// 지표 계산
RSI값 = RSI(Close, 14);
BB상단 = BollBandUp(Close, 20, 2);
BB하단 = BollBandDn(Close, 20, 2);
BB중심 = Average(Close, 20);
// === 롱 진입 ===
If 진입중 = false and 숏진입중 = false and Volume > 기준거래량
and Close > BB상단 and RSI값 < 70 and Close > ST Then
Begin
진입가 = Close;
익절가 = 진입가 + 익절포인트 * MinMove;
손절가 = 진입가 - 손절포인트 * MinMove;
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
// === 숏 진입 ===
If 진입중 = false and 숏진입중 = false and Volume > 기준거래량
and Close < BB하단 and RSI값 > 30 and Close < ST Then
Begin
진입가 = Close;
익절가 = 진입가 - 익절포인트 * MinMove;
손절가 = 진입가 + 손절포인트 * MinMove;
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (진입가 - 익절가) / (손절가 - 진입가);
숏진입중 = true;
End;
// === 롱 청산 ===
If 진입중 = true Then
Begin
If Close >= 익절가 or Close <= 손절가 or RSI값 >= 75 Then
Begin
If Close >= 익절가 Then 승거래 += 1;
진입중 = false;
총거래 += 1;
End;
End;
// === 숏 청산 ===
If 숏진입중 = true Then
Begin
If Close <= 익절가 or Close >= 손절가 or RSI값 <= 25 Then
Begin
If Close <= 익절가 Then 승거래 += 1;
숏진입중 = false;
총거래 += 1;
End;
End;
// === Plot 시각화 (안정성 강화 버전) ===
진입상태 = IFF(진입중 = true or 숏진입중 = true, 1, 0);
Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0);
Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0);
Plot승률 = IFF(총거래 > 0, 100 * 승거래 / 총거래, 0);
Plot1(진입상태, "진입여부");
Plot2(Plot익절, "익절가");
Plot3(Plot손절, "손절가");
Plot4(Plot승률, "승률(%)");
3.
// ? E-mini Nasdaq 100 전용: 수동 손익비 조절 박스 포함 안정화 버전 (문법 오류 수정 포함)
Input: 익절포인트(30), 손절포인트(12), 기준거래량(10000),
atrMult(3.0), atrLen(10),
수동진입가(0), 수동익절가(0), 수동손절가(0), 수동모드(false);
Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false);
Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0);
Var: ATR(0), ST(0), Up(0), Dn(0), PrevST(0);
Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0);
Var: Plot익절(0), Plot손절(0), Plot승률(0);
// 외부 함수 정의 필요
External: BollBandUp, BollBandDn;
External: MinMove;
// SuperTrend 계산
If CurrentBar = 1 Then PrevST = Close;
ATR = Average(TrueRange, atrLen);
Up = (High + Low)/2 + atrMult * ATR;
Dn = (High + Low)/2 - atrMult * ATR;
If Close > PrevST Then ST = Dn Else ST = Up;
PrevST = ST;
// 지표 계산
RSI값 = RSI(Close, 14);
BB상단 = BollBandUp(Close, 20, 2);
BB하단 = BollBandDn(Close, 20, 2);
BB중심 = Average(Close, 20);
// === 자동 진입 조건 ===
If 수동모드 = false and 진입중 = false and 숏진입중 = false and Volume > 기준거래량 and
Close > BB상단 and RSI값 < 70 and Close > ST Then
Begin
진입가 = Close;
익절가 = 진입가 + 익절포인트 * MinMove;
손절가 = 진입가 - 손절포인트 * MinMove;
If (진입가 > 0 and 손절가 > 0 and AbsValue(진입가 - 손절가) > 0.00001) Then
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
If 수동모드 = false and 진입중 = false and 숏진입중 = false and Volume > 기준거래량 and
Close < BB하단 and RSI값 > 30 and Close < ST Then
Begin
진입가 = Close;
익절가 = 진입가 - 익절포인트 * MinMove;
손절가 = 진입가 + 손절포인트 * MinMove;
If (진입가 > 0 and 손절가 > 0 and AbsValue(진입가 - 손절가) > 0.00001) Then
손익비 = (진입가 - 익절가) / (손절가 - 진입가);
숏진입중 = true;
End;
// === 수동 모드 진입 ===
If 수동모드 = true and 진입중 = false and 숏진입중 = false and
수동진입가 > 0 and 수동익절가 > 0 and 수동손절가 > 0 and
AbsValue(수동진입가 - 수동손절가) > 0.00001 Then
Begin
진입가 = 수동진입가;
익절가 = 수동익절가;
손절가 = 수동손절가;
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
// === 롱 청산 ===
If 진입중 = true Then
Begin
If 익절가 > 0 and 손절가 > 0 and
(Close >= 익절가 or Close <= 손절가 or RSI값 >= 75) Then
Begin
If Close >= 익절가 Then 승거래 += 1;
진입중 = false;
총거래 += 1;
End;
End;
// === 숏 청산 ===
If 숏진입중 = true Then
Begin
If 익절가 > 0 and 손절가 > 0 and
(Close <= 익절가 or Close >= 손절가 or RSI값 <= 25) Then
Begin
If Close <= 익절가 Then 승거래 += 1;
숏진입중 = false;
총거래 += 1;
End;
End;
// === Plot 시각화 ===
진입상태 = IFF(진입중 = true or 숏진입중 = true, 1, 0);
Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0);
Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0);
Plot승률 = IFF(총거래 > 0 and 승거래 >= 0, 100 * 승거래 / 총거래, 0);
Plot1(진입상태, "진입여부");
Plot2(Plot익절, "익절가");
Plot3(Plot손절, "손절가");
Plot4(Plot승률, "승률(%)");
둘다 각 차트에 구현되게 부탁드립니다