커뮤니티

함수식

프로필 이미지
유인력11
2018-12-25 20:45:05
263
글번호 124750
답변완료
안녕하세요 미리감사인사드려요 한국투자증권 예스글로벌 사용자입니다 아래의 식을 사용해보니 진행중일때 나타나던 진입청산 신호들이 다음날 아침에 다시 컴퓨터를 켜보면 전일 밤에 나타나던 진입식들이 사라지기도하고 없던 진입신호들이 생기기도합니다 물런 당일 수익율도 다르게나옵니다 MarketPosition 를 두번사용해서 그런건가요? 제가원하는 수식은 나스닥 기준으로 당일 손익이 +- 50(pt)에 매번 진입시 수익이 30(pt)이상에서 -10(pt)내려가면 청산되는 수식입니다 수정부탁드립니다 수고하세요 꾸벅 Input : 당일수익(50),당일손실(50); Var : N1(0),dayPl(0),Xcond(false); if Bdate != Bdate[1] Then { Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] and (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; if Xcond == false then{ if /*매수진입조건*/ Then { buy("b"); } if /*매도진입조건*/ Then { sell("s"); } } if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); } if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice+30 Then ExitLong("bx",AtStop,highest(h,BarsSinceEntry)-10); if MarketPosition == -1 and Lowest(L,BarsSinceEntry) <= EntryPrice-30 Then ExitShort("sx",AtStop,Lowest(l,BarsSinceEntry)+10);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-12-26 11:26:48

안녕하세요 예스스탁입니다. MarketPosition은 차트상 신호의 포지션입니다. 해당 함수를 여러번 사용한것과는 관계가 없습니다. 청산식들은 올려주신 내용으로 정확히 작성되어 있습니다. 수식은적용되어 차트의 데이터로 계산을 하고 신호를 생성하게 됩니다. 수식을 다음날 적용시 과거의 신호가 바뀌는건 것은 보통 2가지 경우입니다. 1 차트는 항상 현재봉기준 N개봉을 조회해 띄우게 됩니다. 진입의 조건중에 과거 봉의 갯수에 영향을 받는 내용이 있으면 차트를 조회할떄마다 계산값이 변경되어 진입이 변경될수 있습니다. 이러한 내용이 수식에 있는지는 사용자분이 사용하시는 수식을 살펴보셔야 합니다. 이런 내용이 있는 전략식들은 보통 당일청산으로 청산하고 다음날에는 이전일의 진입청산신호 내용은 무시해서 사용하는 경우가 많습니다. 2 보통 다음날 차트를 다시 열었을때 이전일의 신호가 변경되는 경우에는 아래의 경우가 많습니다. 수식은 차트의 데이터가 동일하면 동일신호를 발생하게 됩니다. 실시간으로 데이터를 받을때와 재조회했을때 해당 선물사나 증권사의 서버로 부터 받는 데이터가 달라서 발생하는 내용입니다. 일반적으로 서버에 저장되는 데이터는 온전한 데이터일 경우가 많으므로 재조회 했을때 봉수나 값들이 이전에 실시간에서 수신받았을 때와 달라지는 것은 실시간에서 데이터의 유실이 있었다는 내용입니다. 해외선물의 경우 저희는 프로그램만 제공하고 데이터는 해당 증권사나 선물사에서 모두 관리를 하기 때문에 저희가 해당 부분에 대해 답변을 드리기 어렵습니다. 즐거운 하루되세요 > 유인력11 님이 쓴 글입니다. > 제목 : 함수식 > 안녕하세요 미리감사인사드려요 한국투자증권 예스글로벌 사용자입니다 아래의 식을 사용해보니 진행중일때 나타나던 진입청산 신호들이 다음날 아침에 다시 컴퓨터를 켜보면 전일 밤에 나타나던 진입식들이 사라지기도하고 없던 진입신호들이 생기기도합니다 물런 당일 수익율도 다르게나옵니다 MarketPosition 를 두번사용해서 그런건가요? 제가원하는 수식은 나스닥 기준으로 당일 손익이 +- 50(pt)에 매번 진입시 수익이 30(pt)이상에서 -10(pt)내려가면 청산되는 수식입니다 수정부탁드립니다 수고하세요 꾸벅 Input : 당일수익(50),당일손실(50); Var : N1(0),dayPl(0),Xcond(false); if Bdate != Bdate[1] Then { Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] and (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; if Xcond == false then{ if /*매수진입조건*/ Then { buy("b"); } if /*매도진입조건*/ Then { sell("s"); } } if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); } if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice+30 Then ExitLong("bx",AtStop,highest(h,BarsSinceEntry)-10); if MarketPosition == -1 and Lowest(L,BarsSinceEntry) <= EntryPrice-30 Then ExitShort("sx",AtStop,Lowest(l,BarsSinceEntry)+10);