답변완료
부탁드립니다 항상 감사합니다
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승률, "승률(%)");
둘다 각 차트에 구현되게 부탁드립니다
2025-05-18
250
글번호 190921
지표
답변완료
부탁드립니다 항상 감사합니다
// ===== 손익비 박스 전략 (복사 전용) =====
Input: 손절비율(0.995), 선길이분(60);
Var: 진입가(0), 손절가(0), 박스ID(0), 박스색(Red);
Var: 진입중(false), 숏모드(false);
// 예시 진입 조건 (사용자 조건에 맞게 수정)
If 진입중 == false and Close > Open Then
Begin
진입가 = Close;
손절가 = 진입가 * 손절비율;
진입중 = true;
숏모드 = false;
Text_New(Date, Time, Close, "TEST 진입");
TL_SetSize(TL_New(Date, Time, 진입가, Date, MinutesToTime(TimeToMinutes(Time) + 선길이분), 진입가), 1);
// 손익비 박스 시각화
박스ID = TL_New(Date, Time, 진입가, Date, Time, 손절가);
TL_SetColor(박스ID, 박스색);
TL_SetSize(박스ID, 2);
TL_SetExtLeft(박스ID, false);
TL_SetExtRight(박스ID, false);
Text_New(Date, Time, (진입가 + 손절가)/2, "손익비: 무한 / 손절: -" + NumToStr(100 - 손절비율 * 100, 1) + "%");
End;
구현이 되질않습니다 도와주세요 ㅠ
2025-05-17
229
글번호 190916
지표
답변완료
부탁드립니다 항상 감사합니다
Input: 비교봉(100), 플러스폭(20), 마이너스폭(20), 익절비율(1.05), 손절비율(0.95);
Var: A(0), B(0), T(0),
기준거래량(0), 진입가(0), 익절가(0), 손절가(0),
진입중(false), 매도완료(false), 총수(0), 승수(0), 진입날짜(0);
// 모멘텀 계산
A = O;
B = Accum(iff(A > A[비교봉], 플러스폭, iff(A < A[비교봉], -마이너스폭, 0)));
If B > B[1] Then
T = 1;
Else if B < B[1] Then
T = -1;
Else
T = T[1];
// 기준 거래량 계산 (데이터 충분할 때만)
If CurrentBar > 20 Then
기준거래량 = Average(volume, 20);
// 진입 조건
If 진입중 == false and 매도완료 == false and T == 1 and CurrentBar > 20 Then
Begin
If volume > 기준거래량 and
Close > BollBandUp(20, 2) and
Close > Open and
(Close - Open) > (High - Low) * 0.6 Then
Begin
진입가 = Close;
익절가 = 진입가 * 익절비율;
손절가 = 진입가 * 손절비율;
진입중 = true;
총수 = 총수 + 1;
진입날짜 = Date;
Text_New(Date, Time, Close, "BUY");
End;
End;
차트가 검증은되는데 구현이 되질않습니다 수정부탁드리겠습니다
2025-05-17
299
글번호 190914
지표