커뮤니티

문의드려요.

프로필 이미지
회원
2013-05-27 13:09:14
218
글번호 63611
답변완료
수식 부탁드립니다. A1~A4, B1~B4로 정의된 8개의 지표가 있습니다. 진입은 9시 3분 이후에 합니다. 매수조건 : A1~A4중 3개이상 그리고 B1~B4중 3개이상의 기울기가 상승이면 매수 정상손절청산조건 : A1~A4중 2개이상 그리고 B1~B4중 2개이상의 기울기가 하락이면 손절청산 매도와 매도청산은 매수식과 매수청산식의 기울기를 반대로 적용하면 됩니다. 위의 식을 기본으로 1. 정상 손절조건이 발생하지 않았어도 강제 손절하는 조건을 추가하고 싶습니다. 매수의 경우 당일 저가의 2틱 아래를 터치하면 강제 손절 매도의 경우 당일 고가의 2틱 위를 터치하면 강제 손절 동시에 강제손절조건으로 청산되면 당일 계속해서 진입할지 안할지를 변수로 결정합니다. 변수가 0이면 당일 더 이상의 진입은 없음. (정상손절인 경우 새로운 진입은 계속되어야 합니다.) 2. 수익청산의 조건은 정상 손절이나 강제손절 조건에 도달하지 않은 경우 2개로 나눠서 합니다. 마지막 진입이 9:30분 이전인 경우 매수진입인 경우 당일 저가대비 1% 오르면 이익청산(매도진입은 당일 고가대비 1% 하락하면) 마지막진입이 9:30분 이후인 경우 매수,매도 진입 모두 진입가 대비 0.5% 수익이면 이익청산 만약 당일 이익청산이 되었다면 변수0 또는 1로 더 이상 진입을 할지 안할지를 결정합니다.(강제 청산 변수명과는 다르게 합니다.) 진입후 청산 조건이 안나오면 당일 종가에 청산합니다. 감사합니다.
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2013-05-27 16:45:10

안녕하세요 예스스탁입니다. input : X(0),Y(0); var : Xcond(false),Ycond(false); var : UPA1(0),DnA1(0),UPA2(0),DnA2(0),UPA3(0),DnA3(0),UPA4(0),DnA4(0); var : UPB1(0),DnB1(0),UPB2(0),DnB2(0),UPB3(0),DnB3(0),UPB4(0),DnB4(0); UpA1 = iff(A1 > A1[1],1,0); UpA2 = iff(A2 > A2[1],1,0); UpA3 = iff(A3 > A3[1],1,0); UpA4 = iff(A4 > A4[1],1,0); UpB1 = iff(B1 > B1[1],1,0); UpB2 = iff(B2 > B2[1],1,0); UpB3 = iff(B3 > B3[1],1,0); UpB4 = iff(B4 > B4[1],1,0); DnA1 = iff(A1 < A1[1],1,0); DnA2 = iff(A2 < A2[1],1,0); DnA3 = iff(A3 < A3[1],1,0); DnA4 = iff(A4 < A4[1],1,0); DnB1 = iff(B1 < B1[1],1,0); DnB2 = iff(B2 < B2[1],1,0); DnB3 = iff(B3 < B3[1],1,0); DnB4 = iff(B4 < B4[1],1,0); XCond = X == 0 and ExitDate(1) == sdate and (IsExitName("BL",1) or IsExitName("SL",1)); YCond = Y == 0 and ExitDate(1) == sdate and (IsExitName("BP1",1) or IsExitName("BP2",1) or IsExitName("SP1",1) or IsExitName("SP2",1)); if Xcond == false and Ycond == false then{ if (UpA1+UpA2+UpA3+UpA4) >= 3 and (UpB1+UpB2+UpB3+UpB4) >= 3 Then buy(); if (DnA1+DnA2+DnA3+DnA4) >= 3 and (DnB1+DnB2+DnB3+DnB4) >= 3 Then sell(); } if (DnA1+DnA2+DnA3+DnA4) >= 2 and (DnB1+DnB2+DnB3+DnB4) >= 2 Then ExitLong(); if (UpA1+UpA2+UpA3+UpA4) >= 2 and (UpB1+UpB2+UpB3+UpB4) >= 2 Then ExitShort(); if MarketPosition == 1 Then{ ExitLong("BL",AtStop,daylow[BarsSinceEntry]-PriceScale*2); if EntryTime < 93000 Then ExitLong("BP1",atlimit,daylow*1.01); Else ExitLong("BP2",atlimit,EntryPrice*1.005); } if MarketPosition == -1 Then{ ExitShort("SL",AtStop,DayHigh[BarsSinceEntry]+PriceScale*2); if EntryTime < 93000 Then ExitShort("SP1",atlimit,DayHigh*0.99); Else ExitShort("SP2",atlimit,EntryPrice*0.995); } SetStopEndofday(150000); 즐거운 하루되세요 > HI_jhy6835 님이 쓴 글입니다. > 제목 : 문의드려요. > 수식 부탁드립니다. A1~A4, B1~B4로 정의된 8개의 지표가 있습니다. 진입은 9시 3분 이후에 합니다. 매수조건 : A1~A4중 3개이상 그리고 B1~B4중 3개이상의 기울기가 상승이면 매수 정상손절청산조건 : A1~A4중 2개이상 그리고 B1~B4중 2개이상의 기울기가 하락이면 손절청산 매도와 매도청산은 매수식과 매수청산식의 기울기를 반대로 적용하면 됩니다. 위의 식을 기본으로 1. 정상 손절조건이 발생하지 않았어도 강제 손절하는 조건을 추가하고 싶습니다. 매수의 경우 당일 저가의 2틱 아래를 터치하면 강제 손절 매도의 경우 당일 고가의 2틱 위를 터치하면 강제 손절 동시에 강제손절조건으로 청산되면 당일 계속해서 진입할지 안할지를 변수로 결정합니다. 변수가 0이면 당일 더 이상의 진입은 없음. (정상손절인 경우 새로운 진입은 계속되어야 합니다.) 2. 수익청산의 조건은 정상 손절이나 강제손절 조건에 도달하지 않은 경우 2개로 나눠서 합니다. 마지막 진입이 9:30분 이전인 경우 매수진입인 경우 당일 저가대비 1% 오르면 이익청산(매도진입은 당일 고가대비 1% 하락하면) 마지막진입이 9:30분 이후인 경우 매수,매도 진입 모두 진입가 대비 0.5% 수익이면 이익청산 만약 당일 이익청산이 되었다면 변수0 또는 1로 더 이상 진입을 할지 안할지를 결정합니다.(강제 청산 변수명과는 다르게 합니다.) 진입후 청산 조건이 안나오면 당일 종가에 청산합니다. 감사합니다.
프로필 이미지

회원

2013-05-27 19:22:39

수식 감사합니다. 추가 수정 부탁합니다. 1. 9시 5분 이후에 진입시작으로... 2시 30분 이후엔 신규진입 없고, 기존 진입만 청산가능 2. 변수 x에서 청산 후 재진입여부는 정상손절청산(지표 8개의 4개/4개중 2개/2개 이상의 기울기가 반대로 변한 경우에만 정상손절청산으로 봅니다.)인 경우는 해당되어서는 안되고 강제 손절로 인한 재진입 여부에만 관여합니다. 즉, x=0이어도 정상적으로 손절된 청산은 계속 진입이 가능해야 합니다. 3. 변수 y 수익청산으로 재진입여부는 반대 진입만 허용으로 수정 부탁드립니다. 즉 매수로 진입하여 수익청산한 경우 변수 y가 0 이 아니면 매도진입과 청산만 가능합니다. 감사합니다.^^ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의드려요. > 안녕하세요 예스스탁입니다. input : X(0),Y(0); var : Xcond(false),Ycond(false); var : UPA1(0),DnA1(0),UPA2(0),DnA2(0),UPA3(0),DnA3(0),UPA4(0),DnA4(0); var : UPB1(0),DnB1(0),UPB2(0),DnB2(0),UPB3(0),DnB3(0),UPB4(0),DnB4(0); UpA1 = iff(A1 > A1[1],1,0); UpA2 = iff(A2 > A2[1],1,0); UpA3 = iff(A3 > A3[1],1,0); UpA4 = iff(A4 > A4[1],1,0); UpB1 = iff(B1 > B1[1],1,0); UpB2 = iff(B2 > B2[1],1,0); UpB3 = iff(B3 > B3[1],1,0); UpB4 = iff(B4 > B4[1],1,0); DnA1 = iff(A1 < A1[1],1,0); DnA2 = iff(A2 < A2[1],1,0); DnA3 = iff(A3 < A3[1],1,0); DnA4 = iff(A4 < A4[1],1,0); DnB1 = iff(B1 < B1[1],1,0); DnB2 = iff(B2 < B2[1],1,0); DnB3 = iff(B3 < B3[1],1,0); DnB4 = iff(B4 < B4[1],1,0); XCond = X == 0 and ExitDate(1) == sdate and (IsExitName("BL",1) or IsExitName("SL",1)); YCond = Y == 0 and ExitDate(1) == sdate and (IsExitName("BP1",1) or IsExitName("BP2",1) or IsExitName("SP1",1) or IsExitName("SP2",1)); if Xcond == false and Ycond == false then{ if (UpA1+UpA2+UpA3+UpA4) >= 3 and (UpB1+UpB2+UpB3+UpB4) >= 3 Then buy(); if (DnA1+DnA2+DnA3+DnA4) >= 3 and (DnB1+DnB2+DnB3+DnB4) >= 3 Then sell(); } if (DnA1+DnA2+DnA3+DnA4) >= 2 and (DnB1+DnB2+DnB3+DnB4) >= 2 Then ExitLong(); if (UpA1+UpA2+UpA3+UpA4) >= 2 and (UpB1+UpB2+UpB3+UpB4) >= 2 Then ExitShort(); if MarketPosition == 1 Then{ ExitLong("BL",AtStop,daylow[BarsSinceEntry]-PriceScale*2); if EntryTime < 93000 Then ExitLong("BP1",atlimit,daylow*1.01); Else ExitLong("BP2",atlimit,EntryPrice*1.005); } if MarketPosition == -1 Then{ ExitShort("SL",AtStop,DayHigh[BarsSinceEntry]+PriceScale*2); if EntryTime < 93000 Then ExitShort("SP1",atlimit,DayHigh*0.99); Else ExitShort("SP2",atlimit,EntryPrice*0.995); } SetStopEndofday(150000); 즐거운 하루되세요 > HI_jhy6835 님이 쓴 글입니다. > 제목 : 문의드려요. > 수식 부탁드립니다. A1~A4, B1~B4로 정의된 8개의 지표가 있습니다. 진입은 9시 3분 이후에 합니다. 매수조건 : A1~A4중 3개이상 그리고 B1~B4중 3개이상의 기울기가 상승이면 매수 정상손절청산조건 : A1~A4중 2개이상 그리고 B1~B4중 2개이상의 기울기가 하락이면 손절청산 매도와 매도청산은 매수식과 매수청산식의 기울기를 반대로 적용하면 됩니다. 위의 식을 기본으로 1. 정상 손절조건이 발생하지 않았어도 강제 손절하는 조건을 추가하고 싶습니다. 매수의 경우 당일 저가의 2틱 아래를 터치하면 강제 손절 매도의 경우 당일 고가의 2틱 위를 터치하면 강제 손절 동시에 강제손절조건으로 청산되면 당일 계속해서 진입할지 안할지를 변수로 결정합니다. 변수가 0이면 당일 더 이상의 진입은 없음. (정상손절인 경우 새로운 진입은 계속되어야 합니다.) 2. 수익청산의 조건은 정상 손절이나 강제손절 조건에 도달하지 않은 경우 2개로 나눠서 합니다. 마지막 진입이 9:30분 이전인 경우 매수진입인 경우 당일 저가대비 1% 오르면 이익청산(매도진입은 당일 고가대비 1% 하락하면) 마지막진입이 9:30분 이후인 경우 매수,매도 진입 모두 진입가 대비 0.5% 수익이면 이익청산 만약 당일 이익청산이 되었다면 변수0 또는 1로 더 이상 진입을 할지 안할지를 결정합니다.(강제 청산 변수명과는 다르게 합니다.) 진입후 청산 조건이 안나오면 당일 종가에 청산합니다. 감사합니다.