답변완료
TL 돌파 표시 + 몇가지 관련 질문드립니다
늘 답변해 주셔서 감사드립니다
질문 1) 전에 알려주셨던 수식 검토해봤는데요
마지막에 #추세선값 상향돌파 부분에서
라인그래프로 있는 부분을 점그래프로 바꿔봤는데 점이 매우 작게 나오네요 굵기를 크게 해도 변화가 없고요. 일단 막대로 해놓으니 나오긴 하는데 점으로도 표기가 되나요???
추세선은 예전것도 보고 싶어서 delete 해제 시켜놨습니다
기본차트에 적용했습니다 검토 부탁드려요~
질문 2)
추세선 돌파는 여부는 반드시 우측연장 표시를 해야 나오나요?
우측연장은 말그대로 연장한 선까지 포함시켜서 돌파 했을때 표시해주는거고,
추세선 범위내에서 (연장없음) 돌파가 발생하면 상관없나요?~
질문3) 우상향 추세선 (pink) 일때는 봉갯수가 10개 이하,
우하향 (블루) 일때는 봉갯수가 5개 이하일때 추세선을 나타내라
이런식으로 나눠서 작성하고 싶습니다
질문4) noplot 은 어떤 경우에 쓰는 함수인가요?
감사합니다
var : n(20);
var : cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TX(0),TL1(0);
if CountIf(H >= L*1.13,n) >= 1 Then
{
#"최근봉"만 표시되게 하기위해 "직전에서 출력된 추세선과 텍스트는 삭제"
#n개봉 최고가와 최고가위치(몇봉전인지) 계산
#n개봉 최저가와 최저가위치(몇봉전인지) 계산
hh = 0;
hb = 0;
ll = 0;
lb = 0;
For cnt = 0 to n-1
{
if hh == 0 or (hh > 0 and h[cnt] > hh) Then
{
hh = h[cnt];
hb = cnt;
}
if ll == 0 or (ll > 0 and l[cnt] < ll) Then
{
ll = l[cnt];
lb = cnt;
}
}
if (lb > hb and hh >= ll*1.29) or (lb < hb and ll <= hh*0.85) Then
{
//TL_Delete(TL);
// Text_Delete(TX);
TL = TL_New(sDate[hb],sTime[hb],hh,sDate[lb],sTime[lb],ll);
TL_SetDrawMode(tl,0);
TL_SetExtRight(tl,true);
#20개봉 수평선
//TL_Delete(TL1);
TL1 = TL_New(sDate[n-1],sTime[n-1],hh,sDate[0],sTime[0],hh);
TL_SetDrawMode(tl1,0);
TL_SetColor(tl1,Red);
TL_SetSize(tl1,1);
#최고가가 더 가까우면 빨강 아니면 파랑
if lb > hb Then
{
TL_SetColor(TL,Pink);
TL_SetStyle(tl,2);
}
Else
{
TL_SetColor(TL,LightBlue);
TL_SetSize(tl,1);
}
TX = Text_New(TL_GetEndDate(TL),TL_GetEndTime(TL),TL_GetEndVal(TL),NumToStr(abs(hb-lb),0));
Text_SetSize(tx,15);
}
}
#추세선값 상향돌파
if TL_GetValue(TL,sDate,stime) > 0 then
{
value1 = TL_GetValue(TL,sDate,stime);
if CrossUp(c,Value1) Then
plot3(high,"tlcross",LightGreen,Def,1);
}
2024-08-20
768
글번호 182690
지표
답변완료
항상 노고에 감사드립니다.
1번 검색기가 기본이고 2,3,4번 검색기중 3개가 동시에 검색되면 검색되는 검색기를 만들고 싶습니다(예 1+2+3,1+2+4,1+3+4에 해당되는 검색기가 필요합니다.선생님)
1번
Var : Pv(0),Pv2(0),DH(0),MU(0),MD(0),AA(0);
Pv = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
Pv2 = Pv+DayHigh(1)-DayLow(1);
AA=PV2/1.015;
DH=DayHigh(1);
MU=MAX(AA,DH);
MD=MIN(AA,DH);
IF C>O && ((C[1]<=MU && C[1]>=MD && CrossUP(C,MU)) OR (CrossUP(C,MU) && CrossUP(C,MD))) &&
V>=V[1]*2 TheN
Find(1);
2번
var : AA(0),대금(0),A(0),B(0),DD(0),양대금(0),A1(0),B1(0),D1(0),음대금(0);
대금 = (H+O+L+C)/4*V/100000000;
A=IfF(C>O,대금,0);
B=Accum(A);
A1=IfF(C<O,대금,0);
B1=Accum(A1);
if sDate != sDate[1] Then
{
DD = B[1];
D1 = B1[1];
}
양대금=B-DD;
음대금=B1-D1;
if CROSSUP(양대금,음대금) Then
Find(1);
3번
input : 배분1(0.236),배분2(1.02);
var : 중최고가(0),중최저가(0);
var : 경계(0),경계1(False),경계2(False);
var : 기준봉(0),기준봉1(False),기준봉2(False);
var : 결과기준(0),결과기준1(False),결과기준2(False);
var : 평균(0),평균라인(0);
var : a(0), m5(0),m10(0),m20(0),m60(0),m120(0),m240(0),m480(0);
var : bh(0),bc(0),b(0),aa(0);
중최고가=highest(h,20);
중최저가=lowest(l,20);
경계=(중최고가+중최저가)/2-(중최고가-중최저가)*배분1;
경계1=crossup(c, 경계)&& c>o*배분2;
경계2=crossdown(c, 경계);
if 경계1 or 경계2 Then
기준봉 = O;
기준봉1=crossup(c, 기준봉);
기준봉2=crossdown(c, 기준봉);
if 기준봉1 or 기준봉2 Then
결과기준=o;
결과기준1=crossup(c, 결과기준);
결과기준2=crossdown(c, 결과기준);
if 결과기준1 or 결과기준2 Then
A=o;
M5=ema(C,5);
M10=ema(C,10);
M20=ema(C,20);
M60=ema(C,60);
M120=ema(C,120);
M240=ema(C,240);
M480=ema(C,480);
BH=BollBandUp(20,2);
BC=ma(c,20);
평균=((M5*2)+(M10*2)+(M20*3)+(M60*2)+(M120*3)+(M240*2)+(M480*2)+(BH*1)+(BC*1)) / 18;
평균라인=Ema(Ema(Ema(평균, 5), 5), 5);
B=평균라인 + 20*std(평균라인,5);
AA=sar(0.02,0.2);
if C>=A && CROSSUP(C,B) && AA<=C Then
Find(1);
4번
VAR : A(0),B(0);
A=MACD(12,26);
B=CCI(50);
IF A>=0 && CROSSUP(B,0) TheN
Find(1);
입니다. .감사드립니다~~
2024-08-20
732
글번호 182689
종목검색
답변완료
수식 부탁드립니다
수고하십니다
다음자료 시스템거래수식으로 가능한지요?
수식 부탁드립니다
ChatGPT 생성자료입니다
매수 전략 (Long Entry):
조건 1: 현재 30분봉의 종가가 S1 지지선 아래에서 마감하고, 다음 30분봉에서 변곡점(Pivot) 위로 종가가 올라갈 경우 매수 진입.
조건 2: 매수 후 목표가는 R1 저항선으로 설정하고, 손절가는 S2 지지선으로 설정.
매도 전략 (Short Entry):
조건 1: 현재 30분봉의 종가가 R1 저항선 위에서 마감하고, 다음 30분봉에서 변곡점(Pivot) 아래로 종가가 내려갈 경우 매도 진입.
조건 2: 매도 후 목표가는 S1 지지선으로 설정하고, 손절가는 R2 저항선으로 설정.
python으로 작성
코드 복사
import pandas as pd
# CSV 파일에서 나스닥 30분봉 데이터를 불러오기
# 데이터는 'timestamp', 'open', 'high', 'low', 'close', 'volume' 등의 열을 포함해야 합니다.
data = pd.read_csv('nasdaq_30min.csv', parse_dates=['timestamp'])
# 변곡점, 지지선, 저항선 계산 함수
def calculate_pivot(high, low, close):
P = (high + low + close) / 3
R1 = 2 * P - low
S1 = 2 * P - high
R2 = P + (high - low)
S2 = P - (high - low)
return P, R1, S1, R2, S2
# 30분봉 데이터에 적용하여 각 30분봉에 대한 변곡점과 지지/저항선 계산
data['pivot'], data['R1'], data['S1'], data['R2'], data['S2'] = zip(*data.apply(lambda row: calculate_pivot(row['high'], row['low'], row['close']), axis=1))
# 매수 및 매도 신호 생성
# 매수 신호: 현재 30분봉이 S1 지지선 아래에서 마감 후 다음 30분봉이 변곡점 위로 올라갈 때
# 매도 신호: 현재 30분봉이 R1 저항선 위에서 마감 후 다음 30분봉이 변곡점 아래로 내려갈 때
data['signal'] = 0 # 기본값은 신호 없음
# 매수 신호 조건
data.loc[(data['close'].shift(1) < data['S1'].shift(1)) & (data['close'] > data['pivot']), 'signal'] = 1 # 매수 신호
# 매도 신호 조건
data.loc[(data['close'].shift(1) > data['R1'].shift(1)) & (data['close'] < data['pivot']), 'signal'] = -1 # 매도 신호
# 결과 출력: 각 30분봉에 대해 매수 및 매도 신호를 출력
print(data[['timestamp', 'open', 'high', 'low', 'close', 'pivot', 'R1', 'S1', 'R2', 'S2', 'signal']])
# 매수 및 매도 신호 개수 확인
buy_signals = data['signal'].value_counts().get(1, 0)
sell_signals = data['signal'].value_counts().get(-1, 0)
print(f"매수 신호 개수: {buy_signals}")
print(f"매도 신호 개수: {sell_signals}")
2024-08-20
880
글번호 182678
시스템
답변완료
종목검색식부탁드림니다.
항상 노고에 감사드림니다.
아래의 수식을 종목 검색식으로 부탁드림니다.
A= Trix(12);
B=eavg(A,9);
C=CCI(9);
D=MACD(12,26)-eavg(MACD(12,26),9);
E=Stochasticsslow(12,5);
F=EAVG(E,3);
Crossup(A,B) &&
sum(Crossup(C(1),200), 10)>= 1 &&
sum(Crossup(D(1), 0), 10)>= 1 &&
sum(Crossup(E(1),F(1)), 10)>= 1
2024-08-19
996
글번호 182664
종목검색