답변완료
도와주심에..항상 감사드리고 있습니다. 4가지 조건 동시만족하는 검색기 부탁드립니다.
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);
input : Period(26),Period1(52);
var : a(0),b(0),B1(0),B2(0),AA(0),BB(0);
a = PVI+NVI;
b = ma(PVI,Period)+ma(NVI,Period);
b1 = ma(PVI,Period1)+ma(NVI,Period1);
AA=MAX(B,B1);
BB=MIN(B,B1);
if BB*1.01>=AA && crossup(A,AA) Then
Find(1);
input : Period(240);
var : a(0),b(0);
a = PVI+NVI;
b = ma(PVI,Period)+ma(NVI,Period);
if crossup(A,B) Then
Find(1);
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);
2024-02-12
641
글번호 176568
종목검색
답변완료
코드가 원하는대로 되지 않습니다.
var : 구매일자(0),구매시간(0),구매가격(0),구매포지션(False);
var : 수익율(0),일번돌파(False),이번돌파(False),저점(False),고점(False),올랐다(0);
var : 가두리상선1(0),가두리하선1(0),가두리상선2(0),가두리하선2(0),가두리폭(5),증감(2),가두리기간(30);
var : 가두리대상(False),가두리상태(False),하이값(0),로우값(0),가두리상선(0),가두리하선(0),매물대최고(False),매물대박스(0);
가두리상선 = 첫번째매물대하이 * (1 + (증감/100));
가두리하선 = 첫번째매물대로우 * (1 - (증감/100));
가두리대상 = ((첫번째매물대하이 - 첫번째매물대로우)/첫번째매물대로우) *100 < 가두리폭;
매물대최고 = 첫번째매물대하이 > 두번째매물대하이;
if 가두리대상 && CountIF(Highest(h, 가두리기간) < 가두리상선,가두리기간) < 1 && CountIF(Lowest(l, 가두리기간) > 가두리하선,가두리기간) < 1 then
{
가두리상태 = True;
}
if 가두리상태[1] && CrossUp (c, 가두리상선) && 매물대최고 Then
{
Buy("가두리",ATSTOP,가두리상선);
가두리상태 = False;
가두리대상 = False;
구매일자 = sdate;
구매시간 = stime;
구매가격 = Close;
Box_SetSize(매물대박스, 6);
Box_Setfill(매물대박스,true,100,true);
매물대박스 = Box_New(구매일자[20], 구매시간, 가두리상선, 구매일자[1], 구매시간, 가두리하선);
}
IF MarketPosition == 1 then
{
수익율 = ((C - 구매가격) / 구매가격) * 100;
if 수익율 >= 5 && !곡선상승중 Then
{
ExitLong("5% 익절");
구매일자 = 0; // 구매 일자 리셋
구매시간 = 0; // 구매 시간 리셋
구매가격 = 0; // 구매 가격 리셋
수익율 = 0;
가두리상태 = False;
가두리대상 = False;
}
if 수익율 <= -7 Then
{
ExitLong("7% 손절");
구매일자 = 0; // 구매 일자 리셋
구매시간 = 0; // 구매 시간 리셋
구매가격 = 0; // 구매 가격 리셋
수익율 = 0;
가두리상태 = False;
가두리대상 = False;
}
}
많은 도움 주셔서 감사 합니다. 실력이 좀 늘었다고 생각했는데 아직 이런 기초적인것도 안되네요.
기간동안 가두리 범위 안에 캔들이 있다가 상선을 돌파 할때 구매를 하는건데
제대로 되는것도 있지만 캔들이 범위 밖에 나간것도 구매가 됩니다.
뭐가 잘못된건지 모르겠네요.
두번재 스샷은 캔들에 검은색 칠해진건 15% 이상의 캔들 입니다. 딱 봐도 가두리랑 상관없이 검색된겁니다.
위의 코드에서 수정을 부탁 드리고, 더 간결하고 좋은 코드가 있으면 그것도 올려 주시면 공부 열심히 하겠습니다.
질문을 올리고 처음으로 박스함수를 써봤는데.. 아무런 출력이 되지 않네요..
수정부탁드립니다 ^^;
2024-02-12
768
글번호 176566
시스템
답변완료
옵션월물종목에 연결선물 주간 macd를 표현할수있나요?
월물옵션종목창을 일봉으로 호출하고
data2에 연결선물일봉 2000봉을 호출한후
아래 지표식을 적용해보면
옵션데이타만큼만 지표가 나오면서
데이타부족으로 주봉macd표현이 되지 않습니다.
혹시 일봉옵션데이타에 연결선물주간macd를 표현하는 방법이 따로 있나질문드립니다.
감사합니다.
Input : Period1(12), Period2(26), Period3(9);
Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0);
Var : macdVal(0), preMacdVal(0), macdSig(0);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) then {
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMacdVal = macdSig[1];
}
Ep1 = 2/(Period1+1);
EP2 = 2/(Period2+1);
EP3 = 2/(Period3+1);
JISU1 = data2(C) * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균
JISU2 = data2(C) * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균
macdVal = JISU1 - JISU2; //macd
macdSig = macdVal * Ep3 + PreMacdVal * (1-Ep3); //macd signal
2024-02-12
451
글번호 176564
지표