커뮤니티

재문의

프로필 이미지
고수날다
2011-10-13 15:03:36
492
글번호 43678
답변완료
기존 문의 내용인데요.. 새로 작성하는게 빠를거 같아서 다시 문의 드립니다. 일단 수식 감사합니다. 작성해주신 수식에 매수청산 매도 청산 신호가 없어서 제가 넣었는데요..(아래 수식) 이렇게 넣는게 맞는지요. 1. 설정창에서 손절 0.4pt, 최대수익 0.4pt 이상 0.4pt밀리면 청산하도록 하였는데요.. 이 설정에 도달하지 못하고 반대신호가 나오면 현재 포지션 청산하고 반대신호 진입 하여야 하는데 현재 포지션 청산이 안되고 반대신호 진입만 되게 표시 되내요.. 2. 매수/매도 진입 수식중 시가 < 종가, 또는 시가 > 종가 일때 십자형, T자형 이런 캔들에서는 매수/매도 신호가 발생하면 안되는데 신호 발생하내요.. 제가 잘못 알고 있는것인가요? 어떻게 수식을 넣어야 신호가 발생하지 안을까요? 3. 누적 수익금 변경을 할려면 어떤 수식을 변경하면 되나요? (변경할 숫자가 틱인지 pt 인지요) if count == 0 or MarketPosition == -1 or (count >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) Then{ if L > ma(c,20) and O < C Then buy("사자",AtMarket); if H < ma(C,20) and O > C Then ExitLong("매수청산",AtMarket); } if count == 0 or MarketPosition == 1 or (count >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) Then{ if H < ma(C,20) and O > C Then Sell("팔자",AtMarket); if L > ma(c,20) and O < C Then ExitShort("매도청산",AtMarket); > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식문의 > 안녕하세요 예스스타입니다. input:하루이익(1),하루손실(1); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),cnt(0),count(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count+1; } PLR = 0; count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count+1; if sdate == EntryDate(cnt+1) Then PLR = PLR+PositionProfit(cnt); } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } if count == 0 or MarketPosition == -1 or (count >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) Then{ if L > ma(c,5) and O < C Then buy("b",AtMarket); } if count == 0 or MarketPosition == 1 or (count >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) Then{ if H < ma(C,5) and O > C Then Sell("S",AtMarket); } if MarketPosition == 1 Then{ ExitLong("bx1",AtStop,EntryPrice+(-(하루손실)-(PLR))); ExitLong("bx2",AtLimit,EntryPrice+((하루이익)-(PLR))); } if MarketPosition == -1 Then{ ExitShort("sx1",AtStop,EntryPrice+((하루손실)+(PLR))); ExitShort("sx2",AtLimit,EntryPrice+(-(하루이익)+(PLR))); } SetStopEndofday(150400); 경보음은 시스템 적용할 때 나타나는 시스템 트레이딩 설정창의 매매탭 하단의 경보음 설정에서 하시면 됩니다. 즐거운 하루되세요 > 고수날다 님이 쓴 글입니다. > 제목 : 수식문의 > 아래내용과 같이 시스템식을 만들고 싶습니다. 부탁드립니다. 1. 진입조건 매수 진입(조건만족 다음봉 시가에매수) 저가가 >5 이동평균 이고, 시가<종가인 양봉 매수청산(조건만족 다음봉 시가에매수) 고가가 < 5이동평균 이고, 시가 >종가인 음봉 매도 진입(조건만족 다음봉 시가에매수) 고가가 < 5이동평균 이고, 시가 >종가인 음봉 매도 청산(조건만족 다음봉 시가에매수) 저가가 >5 이동평균 이고, 시가<종가인 양봉 2. 재진입 시스템 설정창에서 손익 청산하도록 할건데요. 각 포지션에서 청산후 반대신호 일때만 재진입 3. 누적 수익청산 상기 신호를 계속 수행하다가 누적 수익이 ± 1pt면 강제청산하고 더 이상 진입을 하지 않음 4. 당일 청산 당일 15:04분에 강제 청산 하루 매매가 1~ 40회정도 됩니다. 상기 식에서 매수/매도 신호발생하면 소리를 낼수 있도록 하고싶은데요 가능할까요 (ex: 매수신호발생,매도신호발생 이런식으로요.. 소리재생 파일은 있습니다)
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-10-13 17:19:47

안녕하세요 예스스탁입니다. 매수청산이나 매도청산식이 불필요한 식입니다. 또한 차트상 하나의 봉에 화살표가 2개 발생하는 것은 청산과 진입이 동시에 발생하는 것입니다. buy와 sell은 반대포지션상태에서 발생하면 자동으로 반대포지션 청산하고 진입에 들어갑니다. 수식에서 O < C, O > C로 진입조건을 지정했으므로 C == O봉에 if조건이 만족하는 것은 아닙니다. 다만 신호의 표시가 if조건만족봉의 다음봉의 시에 표시가 되므로 다음봉이 C==O봉일수는 있습니다. if조건문이 만족한 봉에 신호를 표시하고자 하시면 진입의 atmarket을 onclose로 변경하시면 됩니다. 아래식의 외부변수에 하루이익, 하루손실이 있습니다. 각각에 당일 누적수익하고 누적손실값을 지정해 주시면 됩니다. 강제청산은 설정창에서 설정하셔도 됩니다. 아래는 수정한 식입니다. input:하루이익(1),하루손실(1); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),cnt(0),count(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count+1; } PLR = 0; count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; if sdate == EntryDate(cnt+1) Then PLR = PLR+PositionProfit(cnt+1); } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } Condition1 = ExitDate(1) == sdate and (IsExitName("bx1",1) or IsExitName("bx2",1) or IsExitName("sx1",1) or IsExitName("sx2",1)); if count == 0 or MarketPosition == -1 or (count >= 1 and MarketPosition == 0 and MarketPosition(1) != 1 and Condition1 == false) Then{ if L > ma(c,5) and O < C Then buy("b",AtMarket); } if count == 0 or MarketPosition == 1 or (count >= 1 and MarketPosition == 0 and MarketPosition(1) != -1 and Condition1 == false) Then{ if H < ma(C,5) and O > C Then Sell("S",AtMarket); } if MarketPosition == 1 Then{ ExitLong("bx1",AtStop,EntryPrice+(-(하루손실)-(PLR))); ExitLong("bx2",AtLimit,EntryPrice+((하루이익)-(PLR))); } if MarketPosition == -1 Then{ ExitShort("sx1",AtStop,EntryPrice+((하루손실)+(PLR))); ExitShort("sx2",AtLimit,EntryPrice+(-(하루이익)+(PLR))); } SetStopEndofday(150400); 즐거운 하루되세요 > 고수날다 님이 쓴 글입니다. > 제목 : 재문의 > 기존 문의 내용인데요.. 새로 작성하는게 빠를거 같아서 다시 문의 드립니다. 일단 수식 감사합니다. 작성해주신 수식에 매수청산 매도 청산 신호가 없어서 제가 넣었는데요..(아래 수식) 이렇게 넣는게 맞는지요. 1. 설정창에서 손절 0.4pt, 최대수익 0.4pt 이상 0.4pt밀리면 청산하도록 하였는데요.. 이 설정에 도달하지 못하고 반대신호가 나오면 현재 포지션 청산하고 반대신호 진입 하여야 하는데 현재 포지션 청산이 안되고 반대신호 진입만 되게 표시 되내요.. 2. 매수/매도 진입 수식중 시가 < 종가, 또는 시가 > 종가 일때 십자형, T자형 이런 캔들에서는 매수/매도 신호가 발생하면 안되는데 신호 발생하내요.. 제가 잘못 알고 있는것인가요? 어떻게 수식을 넣어야 신호가 발생하지 안을까요? 3. 누적 수익금 변경을 할려면 어떤 수식을 변경하면 되나요? (변경할 숫자가 틱인지 pt 인지요) if count == 0 or MarketPosition == -1 or (count >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) Then{ if L > ma(c,20) and O < C Then buy("사자",AtMarket); if H < ma(C,20) and O > C Then ExitLong("매수청산",AtMarket); } if count == 0 or MarketPosition == 1 or (count >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) Then{ if H < ma(C,20) and O > C Then Sell("팔자",AtMarket); if L > ma(c,20) and O < C Then ExitShort("매도청산",AtMarket); > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식문의 > 안녕하세요 예스스타입니다. input:하루이익(1),하루손실(1); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),cnt(0),count(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count+1; } PLR = 0; count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count+1; if sdate == EntryDate(cnt+1) Then PLR = PLR+PositionProfit(cnt); } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } if count == 0 or MarketPosition == -1 or (count >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) Then{ if L > ma(c,5) and O < C Then buy("b",AtMarket); } if count == 0 or MarketPosition == 1 or (count >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) Then{ if H < ma(C,5) and O > C Then Sell("S",AtMarket); } if MarketPosition == 1 Then{ ExitLong("bx1",AtStop,EntryPrice+(-(하루손실)-(PLR))); ExitLong("bx2",AtLimit,EntryPrice+((하루이익)-(PLR))); } if MarketPosition == -1 Then{ ExitShort("sx1",AtStop,EntryPrice+((하루손실)+(PLR))); ExitShort("sx2",AtLimit,EntryPrice+(-(하루이익)+(PLR))); } SetStopEndofday(150400); 경보음은 시스템 적용할 때 나타나는 시스템 트레이딩 설정창의 매매탭 하단의 경보음 설정에서 하시면 됩니다. 즐거운 하루되세요 > 고수날다 님이 쓴 글입니다. > 제목 : 수식문의 > 아래내용과 같이 시스템식을 만들고 싶습니다. 부탁드립니다. 1. 진입조건 매수 진입(조건만족 다음봉 시가에매수) 저가가 >5 이동평균 이고, 시가<종가인 양봉 매수청산(조건만족 다음봉 시가에매수) 고가가 < 5이동평균 이고, 시가 >종가인 음봉 매도 진입(조건만족 다음봉 시가에매수) 고가가 < 5이동평균 이고, 시가 >종가인 음봉 매도 청산(조건만족 다음봉 시가에매수) 저가가 >5 이동평균 이고, 시가<종가인 양봉 2. 재진입 시스템 설정창에서 손익 청산하도록 할건데요. 각 포지션에서 청산후 반대신호 일때만 재진입 3. 누적 수익청산 상기 신호를 계속 수행하다가 누적 수익이 ± 1pt면 강제청산하고 더 이상 진입을 하지 않음 4. 당일 청산 당일 15:04분에 강제 청산 하루 매매가 1~ 40회정도 됩니다. 상기 식에서 매수/매도 신호발생하면 소리를 낼수 있도록 하고싶은데요 가능할까요 (ex: 매수신호발생,매도신호발생 이런식으로요.. 소리재생 파일은 있습니다)