커뮤니티

시스템 진입신호시간과 스탑로스

프로필 이미지
주꼬보이
2025-04-29 00:40:31
241
글번호 190479
답변완료

첨부 이미지

input : short(12),long(26),sig(9); var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0); var : macdv(0,Data1),macds(0,Data1); var : macdv1(0,Data2),macds1(0,Data2); var : macdv2(0,Data3),macds2(0,Data3); macdv = data1(macd(short,long)); macds = data1(Ema(macdv,sig)); macdv1 = data2(macd(short,long)); macds1 = data2(Ema(macdv1,sig)); macdv2 = data3(macd(short,long)); macds2 = data3(Ema(macdv2,sig)); if MarketPosition <= 0 and CrossUp(MACDV,0) and MACDV1 > 0 and MACDV2 > 0 Then Buy(); if MarketPosition >= 0 and CrossDown(MACDV,0) and MACDV1 < 0 and MACDV2 < 0 Then Sell(); if MarketPosition == 1 and CrossDown(MACDV,0) Then ExitLong(); if MarketPosition == -1 and CrossUp(MACDV,0) Then ExitShort(); input : 당일청산시간(020000),익절틱수(100),손절틱수(100),최소수익틱수(30),이익보존틱수(10); if sDate != sDate[1] Then SetStopEndofday(055000); if Bdate != Bdate[1] Then SetStopEndofday(0); if MarketPosition == 1 Then { if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*최소수익틱수 Then ExitLong("bx",AtStop,EntryPrice+PriceScale*이익보존틱수); } if MarketPosition == -1 Then { if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*최소수익틱수 Then ExitShort("sx",AtStop,EntryPrice-PriceScale*이익보존틱수); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); ------------------------------------------------------------------------------------ &&&위 시스템코딩 작성에 감사드리며 변수에보면 익절틱,손절틱,최소틱,이익보존틱 총4개로 돼있어 좀어렵습니다 트레일링스탑으로 수정이 나을것 같습니다 50틱 수익을바란다면 70틱에감시를해놓고 20틱하락이런식으로 손절틱,감시틱,되돌림틱, 현재 분봉3개혼합입니다 진입분봉 데이터분봉2개 macd 0선이상이상 일치전략입니다 데이터분봉에 매수시는 macd골든크로스 상태 매도시는 데드크로스 상태 추가요 <5분봉 0선돌파 30분봉60분봉 0선위에있으나 데드크로스진행은 비추세로보고 진입시점아님 5분봉 0선돌파 30분봉60분봉 0선위에 있고 골든크로스진행은 추세로보고 진입시점 매도는 위의 내용 반대입니다> 지금 당일청산기능과 다른주기데이터조합은 유용합니다 해외선물은 23시간 횡보낮시간에 피하고자 당일청산시간같은 진입도 시작시간 추가가 가능한지 문의드립니다 감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-04-29 12:22:25

안녕하세요 예스스탁입니다. input : short(12),long(26),sig(9); input : 진입시작시간(230000),당일청산시간(020000),손절틱(100),감시틱(70),되돌림틱(20); var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0); var : macdv(0,Data1),macds(0,Data1); var : macdv1(0,Data2),macds1(0,Data2); var : macdv2(0,Data3),macds2(0,Data3); macdv = data1(macd(short,long)); macds = data1(Ema(macdv,sig)); macdv1 = data2(macd(short,long)); macds1 = data2(Ema(macdv1,sig)); macdv2 = data3(macd(short,long)); macds2 = data3(Ema(macdv2,sig)); if sDate != sDate[1] Then SetStopEndofday(당일청산시간); if Bdate != Bdate[1] Then SetStopEndofday(0); var : Tcond(False),OO(0),HH(0),LL(0),CC(0); if (sdate != sDate[1] and sTime >= 당일청산시간) or (sdate == sDate[1] and sTime >= 당일청산시간 and sTime[1] < 당일청산시간) Then Tcond = false; if (sdate != sDate[1] and sTime >= 진입시작시간) or (sdate == sDate[1] and sTime >= 진입시작시간 and sTime[1] < 진입시작시간) Then Tcond = true; if Tcond == true Then { if MarketPosition <= 0 and CrossUp(MACDV,0) and MACDV1 > 0 and MACDV2 > 0 and macdv > macds and macdv1 > macds1 and macdv2 > macds2 Then Buy(); if MarketPosition >= 0 and CrossDown(MACDV,0) and MACDV1 < 0 and MACDV2 < 0 and macdv < macds and macdv1 < macds1 and macdv2 < macds2 Then Sell(); if MarketPosition == 1 and CrossDown(MACDV,0) Then ExitLong(); if MarketPosition == -1 and CrossUp(MACDV,0) Then ExitShort(); if MarketPosition == 1 Then { if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*감시틱 Then ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-PriceScale*되돌림틱); } if MarketPosition == -1 Then { if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*감시틱 Then ExitShort("sx",AtStop,lowest(L,BarsSinceEntry)+PriceScale*되돌림틱); } } SetStopLoss(PriceScale*손절틱,PointStop); 즐거운 하루되세요 > 주꼬보이 님이 쓴 글입니다. > 제목 : 시스템 진입신호시간과 스탑로스 > input : short(12),long(26),sig(9); var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0); var : macdv(0,Data1),macds(0,Data1); var : macdv1(0,Data2),macds1(0,Data2); var : macdv2(0,Data3),macds2(0,Data3); macdv = data1(macd(short,long)); macds = data1(Ema(macdv,sig)); macdv1 = data2(macd(short,long)); macds1 = data2(Ema(macdv1,sig)); macdv2 = data3(macd(short,long)); macds2 = data3(Ema(macdv2,sig)); if MarketPosition <= 0 and CrossUp(MACDV,0) and MACDV1 > 0 and MACDV2 > 0 Then Buy(); if MarketPosition >= 0 and CrossDown(MACDV,0) and MACDV1 < 0 and MACDV2 < 0 Then Sell(); if MarketPosition == 1 and CrossDown(MACDV,0) Then ExitLong(); if MarketPosition == -1 and CrossUp(MACDV,0) Then ExitShort(); input : 당일청산시간(020000),익절틱수(100),손절틱수(100),최소수익틱수(30),이익보존틱수(10); if sDate != sDate[1] Then SetStopEndofday(055000); if Bdate != Bdate[1] Then SetStopEndofday(0); if MarketPosition == 1 Then { if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*최소수익틱수 Then ExitLong("bx",AtStop,EntryPrice+PriceScale*이익보존틱수); } if MarketPosition == -1 Then { if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*최소수익틱수 Then ExitShort("sx",AtStop,EntryPrice-PriceScale*이익보존틱수); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); ------------------------------------------------------------------------------------ &&&위 시스템코딩 작성에 감사드리며 변수에보면 익절틱,손절틱,최소틱,이익보존틱 총4개로 돼있어 좀어렵습니다 트레일링스탑으로 수정이 나을것 같습니다 50틱 수익을바란다면 70틱에감시를해놓고 20틱하락이런식으로 손절틱,감시틱,되돌림틱, 현재 분봉3개혼합입니다 진입분봉 데이터분봉2개 macd 0선이상이상 일치전략입니다 데이터분봉에 매수시는 macd골든크로스 상태 매도시는 데드크로스 상태 추가요 <5분봉 0선돌파 30분봉60분봉 0선위에있으나 데드크로스진행은 비추세로보고 진입시점아님 5분봉 0선돌파 30분봉60분봉 0선위에 있고 골든크로스진행은 추세로보고 진입시점 매도는 위의 내용 반대입니다> 지금 당일청산기능과 다른주기데이터조합은 유용합니다 해외선물은 23시간 횡보낮시간에 피하고자 당일청산시간같은 진입도 시작시간 추가가 가능한지 문의드립니다 감사합니다