답변완료
문의드립니다:)
안녕하세요:)
답변해주신 시스템에 대해 추가하고 싶은 부분이 있어 문의드립니다.
역사적 신고가나 6년 신고가 가격을 돌파시 진입을 하게 되는 전략인데요:)
제주반도체가 1월25일 진입 조건에 해당하긴 했는데 신고가 갱신이 안된 것인지 전일 신고가 돌파시 진입을 하게 되어서요
해당 부분이 개선될 수 있는지 문의드립니다
-----------------------------------------------------------------
input : 금액(2000000);
var : HisH(0,Data2),cnt(0),YH6(0,Data2),trade(False),dm(0,Data1),entry(0);
var : Rebuy(False,Data1),NegCnt(0,Data1);
Array : YH[20](0,Data2);
#역사적 신고가(참조데이터의 전체봉 중 최고가)
if HisH == 0 or (HisH > 0 and Data2(H) > HisH) Then
HisH = data2(H);
#연간 최고가 계산
if data2(Bdate > Bdate[1]+1000) Then
{
For cnt = 19 DownTo 1
{
YH[cnt] = YH[cnt-1];
}
YH[0] = Data2(H);
}
if YH[0] > 0 and Data2(H) > YH[0] Then
YH[0] = Data2(H);
if Bdate != Bdate[1] Then
{
trade = true;
entry = 0;
dm = 0;
}
dm = dm + m;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if TotalTrades > TotalTrades[1] Then
{
if IsExitName("bl1",1) == true or IsExitName("bl2",1) == true Then
trade = False;
ReBuy = False;
NegCnt = 0;
}
if Bdate == Bdate[1] Then
{
if h > DayHigh(0)[1] Then
{
rebuy = true;
NegCnt = 0;
}
if rebuy == true and C < O Then
NegCnt = NegCnt+1;
}
if MarketPosition == 0 and trade == true and sTime >= 91000 and sTime < 150000 and dm >= 80000000000 Then
{
#역사적 신고가+1틱이상이면 매수
if entry == 0 Then
Buy("b1",AtStop,HisH+PriceScale*1,Floor(금액/max(NextBarOpen,HisH+PriceScale*1)));
if YH[5] > 0 and entry == 0 Then
{
#6년 최고가 계산
YH6 = 0;
For cnt = 0 to 5
{
if YH6 == 0 or (YH6 > 0 and YH[cnt] > YH6) Then
YH6 = YH[cnt];
}
#6년 최고가 +1틱이면 매수
if YH6 > 0 Then
Buy("b2",AtStop,YH6+PriceScale*1,Floor(금액/max(NextBarOpen,YH6+PriceScale*1)));
}
if entry >= 1 and reBuy == true and NegCnt >= 3 Then
{
Buy("b3",AtStop,DayHigh+PriceScale*1,Floor(금액/max(NextBarOpen,DayHigh+PriceScale*1)));
}
}
if MarketPosition == 1 Then
{
if IsEntryName("b1") == true Then
var1 = HisH[BarsSinceEntry];
if IsEntryName("b2") == true Then
var1 = YH6[BarsSinceEntry];
if IsEntryName("b3") == true Then
var1 = dayhigh[BarsSinceEntry];
if CurrentContracts == MaxContracts Then
ExitLong("bx1",AtLimit,var1*1.02,"",Floor(MaxContracts*0.5),1);
Else
ExitLong("bx2",AtLimit,var1*1.04);
ExitLong("bl1",AtStop,var1*0.985);
ExitLong("bl2",AtStop,EntryPrice*0.96);
}
2024-02-15
1103
글번호 176642
시스템
답변완료
문의 드립니다
input : starttime(140000),endtime(50000),n(30);
var : Tcond(false),hh(0),h1(0),ll(0),l1(0);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then
{
Tcond = false;
}
if (sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then
{
Tcond = true;
hh = h;
ll = l;
h1 = hh[1];
l1 = ll[1];
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
input : 익절틱수(0),손절틱수(50);
if NextBarSdate != sDate Then
{
if NextBarOpen != C Then
{
Buy("b",AtStop,NextBarOpen+PriceScale*5);
}
}
ExitLong("bx",AtMarket);
if NextBarOpen != C Then
{
Buy("b1",AtStop,NextBarOpen+PriceScale*5);
}
ExitLong("bx1",AtMarket);
if NextBarOpen != C Then
{
Buy("b3",AtStop,NextBarOpen+PriceScale*5);
}
ExitLong("bx3",AtMarket);
if NextBarOpen != C Then
{
Buy("b4",AtStop,NextBarOpen+PriceScale*5);
}
ExitLong("bx4",AtMarket);
if NextBarOpen != C Then
{
Buy("b5",AtStop,NextBarOpen+PriceScale*5);
}
ExitLong("bx5",AtMarket);
if NextBarOpen == C Then
{
Buy("b6",AtStop,NextBarOpen+PriceScale*5);
}
ExitLong("bx6",AtMarket);
if NextBarOpen == C Then
{
Buy("b7",AtStop,NextBarOpen+PriceScale*5);
}
ExitLong("bx7",AtMarket);
if NextBarOpen == C Then
{
Buy("b8",AtStop,NextBarOpen+PriceScale*5);
}
ExitLong("bx8",AtMarket);
if NextBarOpen == C Then
{
Buy("b9",AtStop,NextBarOpen+PriceScale*5);
}
ExitLong("bx9",AtMarket);
if NextBarOpen == C Then
{
Buy("b10",AtStop,NextBarOpen+PriceScale*5);
}
ExitLong("bx10",AtMarket);
if NextBarOpen == C Then
{
Buy("b11",AtStop,NextBarOpen+PriceScale*5);
}
ExitLong("bx11",AtMarket);
if NextBarSdate != sDate Then
{
if NextBarOpen != C Then
{
Sell("s",AtStop,NextBarOpen-PriceScale*5);
}
}
ExitShort("sx",AtMarket);
if NextBarOpen != C Then
{
Sell("s1",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx1",AtMarket);
if NextBarOpen != C Then
{
Sell("s3",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx3",AtMarket);
if NextBarOpen != C Then
{
Sell("s4",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx4",AtMarket);
if NextBarOpen != C Then
{
Sell("s5",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx5",AtMarket);
if NextBarOpen == C Then
{
Sell("s6",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx6",AtMarket);
if NextBarOpen == C Then
{
Sell("s7",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx7",AtMarket);
if NextBarOpen == C Then
{
Sell("s8",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx8",AtMarket);
if NextBarOpen == C Then
{
Sell("s9",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx9",AtMarket);
if NextBarOpen == C Then
{
Sell("s10",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx10",AtMarket);
if NextBarOpen == C Then
{
Sell("s11",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx11",AtMarket);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
-----------
위 수식어의 매매시간이 14시부터 익일 5시까지이고
매매의 청산싯점도 5시이고 잔고도 없는것으로 보면 정확한지요?
2024-02-15
990
글번호 176638
시스템
답변완료
수고많습니다. 4가지 조건검색중 3가지 이상조건이 될때 검색되게 해주세요... 감사드립
input : sonarP(20),sonarsig(9),voscP1(5),voscP2(20),rsiP(14);
Var21 = SONAR(sonarP);
Var22 = ema(Var21,sonarsig);
Var5 = OSCV(voscP1,voscP2);
var6 = RSI(rsiP);
if CrossUp(Var21,Var22) and Var21[1] < 0 and
Var5 > 0 and var6[1]<=30 AND var6[1]<var6 Then
Find(1);
input : pd(22), bbl(20), mult(2.0), lb(50), ph(0.85),기간1(10),기간2(20);
var : wvf(0), sDev(0), midLine(0), upperBand(0),rangeHigh(0), OverSold(0);
var : ap(0),esa(0),d(0),ci(0),wt1(0),wt2(0);
# williams vix fix 및 과매도권 밴드 계산
wvf = ((highest(close, pd) - low) / (highest(close, pd))) * 100;
sDev = mult * std(wvf, bbl);
midLine = ma(wvf, bbl);
upperBand = midLine + sDev;
rangeHigh = (highest(wvf, lb)) * ph;
# 웨이브트렌드
ap = (HIGH+LOW+CLOSE)/3;
esa = Ema(ap, 기간1);
d = Ema(abs(ap - esa), 기간1);
ci = (ap - esa) / (0.015 * d);
wt1 = Ema(ci,기간2);
wt2 = ma(wt1,4);
if wt1[1]<=-53 && (wvf >= upperBand or wvf >= rangeHigh or wvf[1] >= upperBand or wvf[1] >= rangeHigh) &&
wvf[1]>wvf && Crossup(wt1,wt2)
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);
input : rsiLenghth(14);
input : rsiOverBought(70);
input : rsiOverSold(30);
var : bullishCandle(False),bearishCandle(False);
var : rsiValue(0),isRSIOB(False),isRSIOS(False),tradeSignal(False);
var : tx1(0),tx2(0),조건(False);
bullishCandle=close >= open[1] and close[1] < open[1];
//close[1] < open[1] && close[1] >= open && close >= open[1];
//high >= high[1] and low <= low[1]
rsiValue=rsi(rsiLenghth);
isRSIOB=rsiValue >= rsiOverBought and rsiValue;
isRSIOS=rsiValue <= rsiOverSold and rsiValue;
tradeSignal=((isRSIOS or isRSIOS[1] or isRSIOS[2]) and bullishCandle);
if tradeSignal && bullishCandle && C>O Then
Find(1);
2024-02-15
773
글번호 176636
종목검색
답변완료
다음의 지표를 분봉에서 사용하고자합니다.
항상 친절한 답변 감사드립니다.
새해에 복많이 받어세요.
아래의 일봉지표를 5분봉에 사용하는것으로 변경 부탁드립니다.
감사합니다. ^^
input: LeftL(3),RightL(3),period(500);
var : c1(0),c2(0),k(0),cnt(0),aaa(0),bbb(0),aaa1(0),bbb1(0);
Array : swingH[4](0), swingL[4](0);
Array : swingHbar[4](0), swingLbar[4](0);
if SwingHigh(1,H,LeftL,RightL,LeftL+RightL+1) != -1 Then
{
for k = 4 DownTo 2
{
swingH[k] = swingH[k-1];
swingHbar[k] = swingHbar[k-1];
if swingHbar[k] <= Index-Period Then
{
swingH[k] = -1;
swingHbar[k] = -1;
}
}
}
2024-02-14
671
글번호 176631
지표