커뮤니티

시스템식 부탁드립니다

프로필 이미지
회원
2013-08-24 11:50:15
165
글번호 66791
답변완료
아래 수식은 smi 를 이용해서 신호가 나올때 곧바로 진입하지 말고 몇개봉 이내에서 5틱 유리하게 진입하라는 식입니다 이를 스토캐스틱 클래식을 이용하여 동일한 식을 예스로 만들어 주시면 감사하겠습니다.. Params : 기간(17),값1(8),값2(8), 시그널기간(4) Var : StMomentum(0), StMomentumSig(0), CrossOver(False), CrossUnder(False) Var : OverBought(False), OverSold(False), OverPrice(0), UnderPrice(0) Var : BarNum(0), OverNum(0), UnderNum(0) BarNum = BarNum + 1 //봉의 번호 StMomentum = (100*(EMA(EMA((C-0.5*(Highest(H,기간)+lowest(L,기간))),값1),값2))/(0.5*EMA(EMA((highest(H,기간)-lowest(L,기간)),값1),값2))) StMomentumSig = EMA((100*(EMA(EMA((C-0.5*(highest(H,기간)+lowest(L,기간))),값1),값2))/(0.5*EMA(EMA((highest(H,기간)-lowest(L,기간)),값1),값2))),시그널기간) CrossOver = StMomentum Cross Over StMomentumSig //상향돌파 CrossUnder = StMomentum Cross Under StMomentumSig //하향돌파 OverBought = StMomentum >= 50 //과매수 OverSold = StMomentum <= -50 //과매도 IF CrossOver then OverNum = BarNum End if //최근 상향돌파시점의 봉번호 IF CrossUnder then UnderNum = BarNum End if//최근 하향돌파시점의 봉번호 //돌파시 종가 IF CrossOver = True Then OverPrice = Close End if IF CrossUnder = True Then UnderPrice = Close End if //진입 If (BarNum-OverNum)>=0 And (BarNum-OverNum)<=3 And CrossUnder=False And OverBought=False Then Buy("B1") Next Bar at OverPrice - 5 Ticks Limit End if // (BarNum-OverNum)>=0 And (BarNum-OverNum)<=3 // 상향돌파 이후 3봉 경과전에 // CrossUnder=False 현재봉에서는 반대방향(하향돌파)이 아닐때 // OverBought=False 과매수 구간이 아닐때 // Buy Next Bar at OverPrice - 5 Ticks Limit // 조건만족후 조건만족시 종가에서 5 Tick 이하로 도달시 매수 //추가 If (BarNum-OverNum)=3 And CrossUnder=False And OverBought=False Then Buy("B2") Next Bar at Market End if //4봉에서 시장가로 진입하라는 로직 If (BarNum-UnderNum)>=0 And (BarNum-UnderNum)<=2 And CrossOver=False And OverSold=False Then Sell("S1") Next Bar at UnderPrice + 3 Ticks Limit End if // If (BarNum-UnderNum)>=0 And (BarNum-UnderNum)<=2 // 하향돌파 이후 2개봉 경과전에 // CrossOver=False 현재봉에서는 반대방향(상향돌파)이 아닐때 // OverSold=False 과매도 구간이 아닐때 //Sell Next Bar at UnderPrice + 3 Ticks Limit // 조건만족후 조건만족시 종가에서 +3 Tick 이상 도달시 매도 //추가 If (BarNum-UnderNum)=3 And CrossOver=False And OverSold=False Then Sell("S2") Next Bar at Market End if //4봉에서 시장가로 진입하라는 로직 //청산 If CrossOver Then //하향돌파시 매수잔고 청산 ExitLong Next Bar at Market End if If CrossUnder Then //상향돌파시 매도잔고 청산 ExitShort Next Bar at Market End if //청산추가 SetTrailingStop(58 Ticks, 58 Ticks, "Point") //TrailingStop 추가 SetProfitTarget(40 Ticks, "Point") //목표수익 추가 SetStopLoss(20 Ticks, "Point") //스탑로스 추가 스토클래식 클래식 시스템식입니다 Params : HighLowTerm(5), kLength(3), dLength(3), OverBought(80), OverSold(20) Var : kClassic(0), dClassic(0) KClassic = MAFC(FastK(High,Low,Close,HighLowTerm), kLength) DClassic = MAFC(KClassic,dLength) If KClassic Cross Over DClassic And KClassic <=OverSold Then Buy Next Bar at Market End if If KClassic Cross under DClassic And KClassic >=Overbought Then sell Next Bar at Market End if 감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-08-26 09:41:16

안녕하세요 예스스탁입니다. input : HighLowTerm(5), kLength(3), dLength(3),OverS(20),OverB(80) ; Var : OverBought(false),OverSold(false),kClassic(0), dClassic(0),CrossOver(False), CrossUnder(False); Var : OverPrice(0), UnderPrice(0); Var : BarNum(0), OverNum(0), UnderNum(0); BarNum = BarNum + 1; KClassic = MA(FastK(HighLowTerm), kLength); DClassic = MA(KClassic,dLength); OverBought = KClassic >= OverB; //과매수 OverSold = KClassic <= OverS; //과매도 CrossOver = crossup(kClassic,DClassic) and OverSold == true; CrossUnder = CrossDown(kClassic,DClassic) and OverBought == true; IF CrossOver then OverNum = BarNum; IF CrossUnder then UnderNum = BarNum; //돌파시 종가 IF CrossOver == True Then OverPrice = Close; IF CrossUnder == True Then UnderPrice = Close; //진입 If MarketPosition <= 0 and (BarNum-OverNum)>=0 And (BarNum-OverNum)<=3 And CrossUnder==False And OverBought==False Then Buy("B1",atlimit,OverPrice - PriceScale*5); // (BarNum-OverNum)>=0 And (BarNum-OverNum)<=3 // 상향돌파 이후 3봉 경과전에 // CrossUnder=False 현재봉에서는 반대방향(하향돌파)이 아닐때 // OverBought=False 과매수 구간이 아닐때 // Buy Next Bar at OverPrice - 5 Ticks Limit // 조건만족후 조건만족시 종가에서 5 Tick 이하로 도달시 매수 //추가 If MarketPosition <= 0 and (BarNum-OverNum)==3 And CrossUnder==False And OverBought==False Then Buy("B2",AtMarket); //4봉에서 시장가로 진입하라는 로직 If MarketPosition >= 0 and (BarNum-UnderNum)>=0 And (BarNum-UnderNum)<=2 And CrossOver==False And OverSold==False Then Sell("S1",atlimit,UnderPrice + PriceScale*3); // If (BarNum-UnderNum)>=0 And (BarNum-UnderNum)<=2 // 하향돌파 이후 2개봉 경과전에 // CrossOver=False 현재봉에서는 반대방향(상향돌파)이 아닐때 // OverSold=False 과매도 구간이 아닐때 //Sell Next Bar at UnderPrice + 3 Ticks Limit // 조건만족후 조건만족시 종가에서 +3 Tick 이상 도달시 매도 //추가 If MarketPosition >= 0 and (BarNum-UnderNum)==3 And CrossOver==False And OverSold==False Then Sell("S2",AtMarket); //4봉에서 시장가로 진입하라는 로직 //청산 If MarketPosition == 1 and CrossDown(kClassic,DClassic) Then //하향돌파시 매수잔고 청산 ExitLong("BX",AtMarket); If MarketPosition == -1 and crossup(kClassic,DClassic) Then //상향돌파시 매도잔고 청산 ExitShort("sx",AtMarket); //청산추가 SetStopTrailing(58*PriceScale, 58*PriceScale,PointStop); //TrailingStop 추가 SetStopProfittarget(40*PriceScale, PointStop); //목표수익 추가 SetStopLoss(20*PriceScale,PointStop); //스탑로스 추가 즐거운 하루되세요 > HI_gapilee1 님이 쓴 글입니다. > 제목 : 시스템식 부탁드립니다 > 아래 수식은 smi 를 이용해서 신호가 나올때 곧바로 진입하지 말고 몇개봉 이내에서 5틱 유리하게 진입하라는 식입니다 이를 스토캐스틱 클래식을 이용하여 동일한 식을 예스로 만들어 주시면 감사하겠습니다.. Params : 기간(17),값1(8),값2(8), 시그널기간(4) Var : StMomentum(0), StMomentumSig(0), CrossOver(False), CrossUnder(False) Var : OverBought(False), OverSold(False), OverPrice(0), UnderPrice(0) Var : BarNum(0), OverNum(0), UnderNum(0) BarNum = BarNum + 1 //봉의 번호 StMomentum = (100*(EMA(EMA((C-0.5*(Highest(H,기간)+lowest(L,기간))),값1),값2))/(0.5*EMA(EMA((highest(H,기간)-lowest(L,기간)),값1),값2))) StMomentumSig = EMA((100*(EMA(EMA((C-0.5*(highest(H,기간)+lowest(L,기간))),값1),값2))/(0.5*EMA(EMA((highest(H,기간)-lowest(L,기간)),값1),값2))),시그널기간) CrossOver = StMomentum Cross Over StMomentumSig //상향돌파 CrossUnder = StMomentum Cross Under StMomentumSig //하향돌파 OverBought = StMomentum >= 50 //과매수 OverSold = StMomentum <= -50 //과매도 IF CrossOver then OverNum = BarNum End if //최근 상향돌파시점의 봉번호 IF CrossUnder then UnderNum = BarNum End if//최근 하향돌파시점의 봉번호 //돌파시 종가 IF CrossOver = True Then OverPrice = Close End if IF CrossUnder = True Then UnderPrice = Close End if //진입 If (BarNum-OverNum)>=0 And (BarNum-OverNum)<=3 And CrossUnder=False And OverBought=False Then Buy("B1") Next Bar at OverPrice - 5 Ticks Limit End if // (BarNum-OverNum)>=0 And (BarNum-OverNum)<=3 // 상향돌파 이후 3봉 경과전에 // CrossUnder=False 현재봉에서는 반대방향(하향돌파)이 아닐때 // OverBought=False 과매수 구간이 아닐때 // Buy Next Bar at OverPrice - 5 Ticks Limit // 조건만족후 조건만족시 종가에서 5 Tick 이하로 도달시 매수 //추가 If (BarNum-OverNum)=3 And CrossUnder=False And OverBought=False Then Buy("B2") Next Bar at Market End if //4봉에서 시장가로 진입하라는 로직 If (BarNum-UnderNum)>=0 And (BarNum-UnderNum)<=2 And CrossOver=False And OverSold=False Then Sell("S1") Next Bar at UnderPrice + 3 Ticks Limit End if // If (BarNum-UnderNum)>=0 And (BarNum-UnderNum)<=2 // 하향돌파 이후 2개봉 경과전에 // CrossOver=False 현재봉에서는 반대방향(상향돌파)이 아닐때 // OverSold=False 과매도 구간이 아닐때 //Sell Next Bar at UnderPrice + 3 Ticks Limit // 조건만족후 조건만족시 종가에서 +3 Tick 이상 도달시 매도 //추가 If (BarNum-UnderNum)=3 And CrossOver=False And OverSold=False Then Sell("S2") Next Bar at Market End if //4봉에서 시장가로 진입하라는 로직 //청산 If CrossOver Then //하향돌파시 매수잔고 청산 ExitLong Next Bar at Market End if If CrossUnder Then //상향돌파시 매도잔고 청산 ExitShort Next Bar at Market End if //청산추가 SetTrailingStop(58 Ticks, 58 Ticks, "Point") //TrailingStop 추가 SetProfitTarget(40 Ticks, "Point") //목표수익 추가 SetStopLoss(20 Ticks, "Point") //스탑로스 추가 스토클래식 클래식 시스템식입니다 Params : HighLowTerm(5), kLength(3), dLength(3), OverBought(80), OverSold(20) Var : kClassic(0), dClassic(0) KClassic = MAFC(FastK(High,Low,Close,HighLowTerm), kLength) DClassic = MAFC(KClassic,dLength) If KClassic Cross Over DClassic And KClassic <=OverSold Then Buy Next Bar at Market End if If KClassic Cross under DClassic And KClassic >=Overbought Then sell Next Bar at Market End if 감사합니다