커뮤니티

29659 재문의

프로필 이미지
쿠루드
2013-04-09 10:48:24
149
글번호 61826
답변완료
수고가 많으세요. 바쁘시겠지만, 29659번 문의 재문의 답글 달았습니다. 답변 좀 부탁드립니다. 감사합니다.^^
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2013-04-09 14:55:08

안녕하세요 예스스탁입니다. 도형은 그리지 못합니다. 수정한식입니다. Var : 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 후행스팬 = Close ; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; if MarketPosition == 0 and crossup(c,선행스팬1[25]) Then buy(); if MarketPosition == 0 and CrossDown(c,선행스팬1[25]) Then sell(); if MarketPosition == 1 Then{ exitlong("PP",AtLimit,EntryPrice+abs(기준선[BarsSinceEntry]-daylow[BarsSinceEntry])); ExitLong("BL",AtStop,daylow[BarsSinceEntry]); } if MarketPosition == -1 Then{ ExitShort("SP",AtLimit,EntryPrice-abs(dayhigh[BarsSinceEntry]-기준선[BarsSinceEntry])); ExitShort("SL",AtStop,dayhigh[BarsSinceEntry]); } 즐거운 하루되세요 > 쿠루드 님이 쓴 글입니다. > 제목 : 29659 재문의 > 수고가 많으세요. 바쁘시겠지만, 29659번 문의 재문의 답글 달았습니다. 답변 좀 부탁드립니다. 감사합니다.^^
프로필 이미지

쿠루드

2013-04-09 20:18:18

쿠루드 님에 의해 삭제된 답변입니다.
프로필 이미지

예스스탁 예스스탁 답변

2013-04-10 19:21:53

안녕하세요 예스스탁입니다. 1. Var : 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 후행스팬 = Close ; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; if MarketPosition == 0 and crossup(c,선행스팬1[25]) Then buy(); if MarketPosition == 0 and CrossDown(c,선행스팬1[25]) Then sell(); if MarketPosition == 1 Then{ exitlong("PP",AtLimit,EntryPrice+abs(기준선[BarsSinceEntry]-daylow[BarsSinceEntry])); ExitLong("BL",AtStop,daylow[BarsSinceEntry]-PriceScale); } if MarketPosition == -1 Then{ ExitShort("SP",AtLimit,EntryPrice-abs(dayhigh[BarsSinceEntry]-기준선[BarsSinceEntry])); ExitShort("SL",AtStop,dayhigh[BarsSinceEntry]+PriceScale); } 2. 직전고점이나 직전저점은 추상적인 내용으로 해당 값을 구할 정확한 내용이 있어야 작성이 가능합니다. 아래식은 첫번째 진입의 청산은 당일최고가와 최저가를 사용하고 이후 두번째 진입부터는 직전청산이후 현재진입까지의 최고가와 최저가를 사용하게 변경한 식입니다. Var : 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0); var : cnt(0),count(0); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 후행스팬 = Close ; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; if MarketPosition == 0 and crossup(c,선행스팬1[25]) Then buy(); if MarketPosition == 0 and CrossDown(c,선행스팬1[25]) Then sell(); count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count+1; } if MarketPosition == 1 and count == 1 Then{ exitlong("PP",AtLimit,EntryPrice+abs(기준선[BarsSinceEntry]-daylow[BarsSinceEntry])); ExitLong("BL",AtStop,daylow[BarsSinceEntry]-PriceScale); } if MarketPosition == -1 and count == 1 Then{ ExitShort("SP",AtLimit,EntryPrice-abs(dayhigh[BarsSinceEntry]-기준선[BarsSinceEntry])); ExitShort("SL",AtStop,dayhigh[BarsSinceEntry]+PriceScale); } var1 = highest(h,BarsSinceExit(1)); var2 = Lowest(L,BarsSinceExit(1)); if MarketPosition == 1 and count > 1 Then{ exitlong("PP1",AtLimit,EntryPrice+abs(기준선[BarsSinceEntry]-var2[BarsSinceEntry])); ExitLong("BL1",AtStop,var2[BarsSinceEntry]-PriceScale); } if MarketPosition == -1 and count > 1 Then{ ExitShort("SP2",AtLimit,EntryPrice-abs(var1[BarsSinceEntry]-기준선[BarsSinceEntry])); ExitShort("SL2",AtStop,var1[BarsSinceEntry]+PriceScale); } 3. 해당 내용을 제어할만한 정확한 조건을 따로 지정해 주셔야 수정해 드릴수가 있습니다. crossup(A,B)의 경우 현재봉에서 A는 B보다 크고 직전봉에서 A가 B보다 같거나 작으면 성립되고 crossdown(A,B)의 경우 현재봉에서 A는 B보다 작고 직전봉에서 A가 B보다 같거나 크면 성립됩니다. 우선 직전봉에서 값이 같은 경우는 배제하게 작성해서 드립니다. Var : 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0); var : cnt(0),count(0); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 후행스팬 = Close ; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; if MarketPosition == 0 and c > 선행스팬1[25] and C[1] < 선행스팬1[26] Then buy(); if MarketPosition == 0 and c < 선행스팬1[25] and C[1] > 선행스팬1[26] Then sell(); count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count+1; } if MarketPosition == 1 and count == 1 Then{ exitlong("PP",AtLimit,EntryPrice+abs(기준선[BarsSinceEntry]-daylow[BarsSinceEntry])); ExitLong("BL",AtStop,daylow[BarsSinceEntry]-PriceScale); } if MarketPosition == -1 and count == 1 Then{ ExitShort("SP",AtLimit,EntryPrice-abs(dayhigh[BarsSinceEntry]-기준선[BarsSinceEntry])); ExitShort("SL",AtStop,dayhigh[BarsSinceEntry]+PriceScale); } var1 = highest(h,BarsSinceExit(1)); var2 = Lowest(L,BarsSinceExit(1)); if MarketPosition == 1 and count > 1 Then{ exitlong("PP1",AtLimit,EntryPrice+abs(기준선[BarsSinceEntry]-var2[BarsSinceEntry])); ExitLong("BL1",AtStop,var2[BarsSinceEntry]-PriceScale); } if MarketPosition == -1 and count > 1 Then{ ExitShort("SP2",AtLimit,EntryPrice-abs(var1[BarsSinceEntry]-기준선[BarsSinceEntry])); ExitShort("SL2",AtStop,var1[BarsSinceEntry]+PriceScale); } 4. 추세선을 이용하시면 마지막진입의 값을 그려보실수 있습니다. 다만 추세선함수가 시스템에 부하가 있을 수 있으니 참고하시기 바랍니다. Var : 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0); var : cnt(0),count(0); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 후행스팬 = Close ; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; if MarketPosition == 0 and c > 선행스팬1[25] and C[1] < 선행스팬1[26] Then buy(); if MarketPosition == 0 and c < 선행스팬1[25] and C[1] > 선행스팬1[26] Then sell(); count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count+1; } if MarketPosition == 1 and count == 1 Then{ exitlong("PP",AtLimit,EntryPrice+abs(기준선[BarsSinceEntry]-daylow[BarsSinceEntry])); ExitLong("BL",AtStop,daylow[BarsSinceEntry]-PriceScale); } if MarketPosition == -1 and count == 1 Then{ ExitShort("SP",AtLimit,EntryPrice-abs(dayhigh[BarsSinceEntry]-기준선[BarsSinceEntry])); ExitShort("SL",AtStop,dayhigh[BarsSinceEntry]+PriceScale); } var1 = highest(h,BarsSinceExit(1)); var2 = Lowest(L,BarsSinceExit(1)); if MarketPosition == 1 and count > 1 Then{ exitlong("PP1",AtLimit,EntryPrice+abs(기준선[BarsSinceEntry]-var2[BarsSinceEntry])); ExitLong("BL1",AtStop,var2[BarsSinceEntry]-PriceScale); TL_Delete(value1); value1 = TL_New(EntryDate,EntryTime,var2[BarsSinceEntry]-PriceScale,sdate,stime,var2[BarsSinceEntry]-PriceScale); } if MarketPosition == -1 and count > 1 Then{ ExitShort("SP2",AtLimit,EntryPrice-abs(var1[BarsSinceEntry]-기준선[BarsSinceEntry])); ExitShort("SL2",AtStop,var1[BarsSinceEntry]+PriceScale); TL_Delete(value1); value1 = TL_New(EntryDate,EntryTime,var1[BarsSinceEntry]+PriceScale,sdate,stime,var1[BarsSinceEntry]+PriceScale); } 5. 수식을 문의하신때 그림으로 봉만 지정하시면 저희쪽에서 답변을 드릴 방법이 없습니다. 특정 값을 이용하시면 해당 값을 게산할수 있는 명확한 조건이나 계산방법을 같이 올려주시기 바랍니다 즐거운 하루되세요 > 쿠루드 님이 쓴 글입니다. > 제목 : Re : Re : 29659 재문의 > 정말 감사합니다. 자꾸만 수정할 내용이 나와 또 다시 부탁드립니다. 그림1 매수신호 발생후 직전 저점을 깨지않고 터치만해도 손절이 되는데, 한틱 돌파하면 손절하는걸로 수정 부탁드립니다.(반대로 매도신호의 경우도 마찬가지가 되야겠네요.) 그림2 검은색 원의 매도신호발생후 2번에서 직전고점인 1번지점을 돌파했음에도 불구하고 손절을 안합니다. 아마도 당일의 고점을 터치해야하는걸로 작업하신것 같습니다. 직전 고점의 한틱 돌파했을 경우로 수정 부탁드립니다.(매수신호인 경우도 마찬가지가 되겠습니다.) 그림3 검은색 원에서 매수신호가 나와야 할 자리인데, 직전 봉이 선을 넘었다가 내려오는 바람에 매도신호가 발생했습니다. 매도신호가 나오지 않고, 후의 양봉에서 매수 신호가 나오도록 수정 부탁드립니다. 추가로 문의드리자면, 진입신호가 나온 후 목표가나 손절가를 선으로 보여줄 수는 없는건가요? 시스템으로 안된다면 지표로라도 가능한지 여쭤봅니다.(물론 최근 마지막 신호것만 보여줘야겠지요..) 감사합니다.^^ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 29659 재문의 > 안녕하세요 예스스탁입니다. 도형은 그리지 못합니다. 수정한식입니다. Var : 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0); 전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2; 기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2; 후행스팬 = Close ; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 52) + Lowest(Low, 52)) / 2; if MarketPosition == 0 and crossup(c,선행스팬1[25]) Then buy(); if MarketPosition == 0 and CrossDown(c,선행스팬1[25]) Then sell(); if MarketPosition == 1 Then{ exitlong("PP",AtLimit,EntryPrice+abs(기준선[BarsSinceEntry]-daylow[BarsSinceEntry])); ExitLong("BL",AtStop,daylow[BarsSinceEntry]); } if MarketPosition == -1 Then{ ExitShort("SP",AtLimit,EntryPrice-abs(dayhigh[BarsSinceEntry]-기준선[BarsSinceEntry])); ExitShort("SL",AtStop,dayhigh[BarsSinceEntry]); } 즐거운 하루되세요 > 쿠루드 님이 쓴 글입니다. > 제목 : 29659 재문의 > 수고가 많으세요. 바쁘시겠지만, 29659번 문의 재문의 답글 달았습니다. 답변 좀 부탁드립니다. 감사합니다.^^