커뮤니티

수식 문의 드립니다.

프로필 이미지
로렌스
2014-02-12 14:38:50
168
글번호 72447
답변완료
맨 아래의 시스템 수식에서 매수 매도 조건에 하나를 더 추가하고 싶습니다. 1) 매수는 볼린저밴드(10) 하단선에 닿으면(터치하면) 2) 매도는 볼린저밴드(10) 상단선에 닿으면(터치하면) 위 조건에서 ㄱ) 가격이 꼬리로만 터치하더라도 신호를 뿌려주는 방식과 ㄴ) 종가캔들로 터치해야만 신호를 뿌려주는 두 가지 방식으로 나눠서 하고 싶습니다. ---------------------------------------------------------------------------------- 그리고 위와 별개로 시스템 전략식이 다른 조건인 매수 매도 신호를 피라미딩 처럼 조건에 만족된다면 다른 문자 "시스템1", "시스템2" 진입은 계속 되고, 청산식만 동일하게 구현하라면 어떻게 하면 되나요? (단, 시스템1, 시스템2 까지 뿐이라서 최대 시스템1에 1개, 시스템2에 1개 해서 2개까지만 진입합니다.) 예를 들어서 if LRLV > LRLs and CCIv <= -50 And 선행스팬1[25] < 선행스팬2[25] Then buy("1번 시스템L"); if LRLV < LRLs and CCIv >= 50 And 선행스팬1[25] > 선행스팬2[25] Then sell("1번 시스템S"); 이 수식조건이 1번 시스템이고, 맨 아래 수식이 2번 시스템이면 두 조건이 다 차트에 뿌려주고 청산 수식은 아래 것으로 동일하게 적용하고 싶습니다. if stime >= 110000 and stime < 130000 Then{ if MarketPosition == 1 Then{ if C >= EntryPrice+PriceScale*2 Then ExitLong("1"); if C <= EntryPrice-PriceScale*6 Then ExitLong("2"); } if MarketPosition == -1 Then{ if C <= EntryPrice-PriceScale*2 Then ExitShort("3"); if C >= EntryPrice+PriceScale*6 Then ExitShort("4"); } } Else{ if MarketPosition == 1 Then{ if C >= EntryPrice+PriceScale*4 Then ExitLong("5"); if C <= EntryPrice-PriceScale*6 Then ExitLong("6"); } if MarketPosition == -1 Then{ if C <= EntryPrice-PriceScale*4 Then ExitShort("7"); if C >= EntryPrice+PriceScale*6 Then ExitShort("8"); } } 답변 부탁드릴께요~ 매번 감사합니다. ================================================================================ Input : Period(14),signal(7),CCIP(9),SP1(01),SP2(6),SP3(6); var : LRLv(0),LRLs(0),CCIv(0),stok(0),Stod(0); Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0); Input : BBP(20), MultiD(2); var : MAv(0),BBup(0),BBdn(0); MAv = ma(C,Period); BBup = BollBandUp(BBP,MultiD); BBdn = BollBandDown(BBP,MultiD); LRLv = LRL(C,Period); LRLs = ma(LRLv,signal); CCiv = CCI(CCIP); Stok = StochasticsK(SP1,SP2); stod = StochasticsD(SP1,SP2,SP3); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; if C < BBup And LRLV > LRLs and CCIv <= -50 and Stok <= 40 And 선행스팬1[25] < 선행스팬2[25] Then buy("2번 시스템L"); if C > BBdn and LRLV < LRLs and CCIv >= 50 and Stok >= 60 And 선행스팬1[25] > 선행스팬2[25] Then sell("2번 시스템S");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-02-12 14:46:04

안녕하세요 예스스탁입니다. 1-ㄱ Input : Period(14),signal(7),CCIP(9),SP1(01),SP2(6),SP3(6); var : LRLv(0),LRLs(0),CCIv(0),stok(0),Stod(0); Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0); Input : BBP(20), MultiD(2); var : MAv(0),BBup(0),BBdn(0); var : bbup2(0),bbdn2(0); MAv = ma(C,Period); BBup = BollBandUp(BBP,MultiD); BBdn = BollBandDown(BBP,MultiD); LRLv = LRL(C,Period); LRLs = ma(LRLv,signal); CCiv = CCI(CCIP); Stok = StochasticsK(SP1,SP2); stod = StochasticsD(SP1,SP2,SP3); BBup2 = BollBandUp(10,2); BBdn2 = BollBandDown(10,2); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; if C < BBup And LRLV > LRLs and CCIv <= -50 and Stok <= 40 And 선행스팬1[25] < 선행스팬2[25] And H >= BBup2 Then buy("매수2"); if C > BBdn and LRLV < LRLs and CCIv >= 50 and Stok >= 60 And 선행스팬1[25] > 선행스팬2[25] And L <= BBdn2 Then sell("매도2"); 1-ㄴ Input : Period(14),signal(7),CCIP(9),SP1(01),SP2(6),SP3(6); var : LRLv(0),LRLs(0),CCIv(0),stok(0),Stod(0); Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0); Input : BBP(20), MultiD(2); var : MAv(0),BBup(0),BBdn(0); var : bbup2(0),bbdn2(0); MAv = ma(C,Period); BBup = BollBandUp(BBP,MultiD); BBdn = BollBandDown(BBP,MultiD); LRLv = LRL(C,Period); LRLs = ma(LRLv,signal); CCiv = CCI(CCIP); Stok = StochasticsK(SP1,SP2); stod = StochasticsD(SP1,SP2,SP3); BBup2 = BollBandUp(10,2); BBdn2 = BollBandDown(10,2); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; if C < BBup And LRLV > LRLs and CCIv <= -50 and Stok <= 40 And 선행스팬1[25] < 선행스팬2[25] And C >= BBup2 Then buy("매수2"); if C > BBdn and LRLV < LRLs and CCIv >= 50 and Stok >= 60 And 선행스팬1[25] > 선행스팬2[25] And C <= BBdn2 Then sell("매도2"); 2. 피라미딩을 하고 진입별로 손절과 목표수익 청산이 발생해야 하므로 강제청산 함수이용하시면 됩니다. 강제청산은 기본적으로 각 진입별로 동작하므로 피라미딩에서 진입별로 각각 셋팅이 됩니다. 강제청산은 시스템 트레이딩 설정창의 강제천산탭 하단의 청산시점이 적용됩니다. 조건만족 즉시로 하시면 지정한 틱 수익시 즉시 발생하고 봉완성시로 하면 종가 판단해 신호가 발생합니다. 기존에 작성된 식이 봉완성시 종가기준이므로 청산시점을 봉완성시로 설정하고 적용하시면 됩니다. Input : Period(14),signal(7),CCIP(9),SP1(01),SP2(6),SP3(6); var : LRLv(0),LRLs(0),CCIv(0),stok(0),Stod(0); Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0); Input : BBP(20), MultiD(2); var : MAv(0),BBup(0),BBdn(0); var : bbup2(0),bbdn2(0); MAv = ma(C,Period); BBup = BollBandUp(BBP,MultiD); BBdn = BollBandDown(BBP,MultiD); LRLv = LRL(C,Period); LRLs = ma(LRLv,signal); CCiv = CCI(CCIP); Stok = StochasticsK(SP1,SP2); stod = StochasticsD(SP1,SP2,SP3); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; BBup2 = BollBandUp(10,2); BBdn2 = BollBandDown(10,2); if C < BBup And LRLV > LRLs and CCIv <= -50 and Stok <= 40 And 선행스팬1[25] < 선행스팬2[25] And H >= BBup2 Then buy("매수2"); if C > BBdn and LRLV < LRLs and CCIv >= 50 and Stok >= 60 And 선행스팬1[25] > 선행스팬2[25] And L <= BBdn2 Then sell("매도2"); if LRLV > LRLs and CCIv <= -50 And 선행스팬1[25] < 선행스팬2[25] Then buy("매수1"); if LRLV < LRLs and CCIv >= 50 And 선행스팬1[25] > 선행스팬2[25] Then sell("매도1"); if stime >= 110000 and stime < 130000 Then{ SetStopLoss(PriceScale*2,PointStop); SetStopProfittarget(PriceScale*6,PointStop); } Else{ SetStopLoss(PriceScale*4,PointStop); SetStopProfittarget(PriceScale*6,PointStop); } 즐거운 하루되세요 > 로렌스 님이 쓴 글입니다. > 제목 : 수식 문의 드립니다. > 맨 아래의 시스템 수식에서 매수 매도 조건에 하나를 더 추가하고 싶습니다. 1) 매수는 볼린저밴드(10) 하단선에 닿으면(터치하면) 2) 매도는 볼린저밴드(10) 상단선에 닿으면(터치하면) 위 조건에서 ㄱ) 가격이 꼬리로만 터치하더라도 신호를 뿌려주는 방식과 ㄴ) 종가캔들로 터치해야만 신호를 뿌려주는 두 가지 방식으로 나눠서 하고 싶습니다. ---------------------------------------------------------------------------------- 그리고 위와 별개로 시스템 전략식이 다른 조건인 매수 매도 신호를 피라미딩 처럼 조건에 만족된다면 다른 문자 "시스템1", "시스템2" 진입은 계속 되고, 청산식만 동일하게 구현하라면 어떻게 하면 되나요? (단, 시스템1, 시스템2 까지 뿐이라서 최대 시스템1에 1개, 시스템2에 1개 해서 2개까지만 진입합니다.) 예를 들어서 if LRLV > LRLs and CCIv <= -50 And 선행스팬1[25] < 선행스팬2[25] Then buy("1번 시스템L"); if LRLV < LRLs and CCIv >= 50 And 선행스팬1[25] > 선행스팬2[25] Then sell("1번 시스템S"); 이 수식조건이 1번 시스템이고, 맨 아래 수식이 2번 시스템이면 두 조건이 다 차트에 뿌려주고 청산 수식은 아래 것으로 동일하게 적용하고 싶습니다. if stime >= 110000 and stime < 130000 Then{ if MarketPosition == 1 Then{ if C >= EntryPrice+PriceScale*2 Then ExitLong("1"); if C <= EntryPrice-PriceScale*6 Then ExitLong("2"); } if MarketPosition == -1 Then{ if C <= EntryPrice-PriceScale*2 Then ExitShort("3"); if C >= EntryPrice+PriceScale*6 Then ExitShort("4"); } } Else{ if MarketPosition == 1 Then{ if C >= EntryPrice+PriceScale*4 Then ExitLong("5"); if C <= EntryPrice-PriceScale*6 Then ExitLong("6"); } if MarketPosition == -1 Then{ if C <= EntryPrice-PriceScale*4 Then ExitShort("7"); if C >= EntryPrice+PriceScale*6 Then ExitShort("8"); } } 답변 부탁드릴께요~ 매번 감사합니다. ================================================================================ Input : Period(14),signal(7),CCIP(9),SP1(01),SP2(6),SP3(6); var : LRLv(0),LRLs(0),CCIv(0),stok(0),Stod(0); Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0); Input : BBP(20), MultiD(2); var : MAv(0),BBup(0),BBdn(0); MAv = ma(C,Period); BBup = BollBandUp(BBP,MultiD); BBdn = BollBandDown(BBP,MultiD); LRLv = LRL(C,Period); LRLs = ma(LRLv,signal); CCiv = CCI(CCIP); Stok = StochasticsK(SP1,SP2); stod = StochasticsD(SP1,SP2,SP3); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; if C < BBup And LRLV > LRLs and CCIv <= -50 and Stok <= 40 And 선행스팬1[25] < 선행스팬2[25] Then buy("2번 시스템L"); if C > BBdn and LRLV < LRLs and CCIv >= 50 and Stok >= 60 And 선행스팬1[25] > 선행스팬2[25] Then sell("2번 시스템S");