커뮤니티

재문의합니다

프로필 이미지
파티아
2016-01-26 23:44:52
103
글번호 94832
답변완료

첨부 이미지

안녕하세요 답변 매번 감사합니다 (buy1매수조건)을 어떻게 추가하는것인지 난감하네요 아래 buy1수식을 첨부합니다 if nday >= 10 then if data1(c) < data2(c) Then if countif(CrossDown(sma44,sma45+0.5),3) >=1 Then Buy("Buy1",AtLimit,c-pricescale*1); 다시한번 부탁드립니다 감사합니다 안녕하세요 예스스탁입니다. 작성하신 식이시면 첨부된 그림과 같이 buy1로 진입중에 sell이 발생하지 않습니다. 다만 Sell진입이 봉완성시 값을 셋팅하고 다음봉에서 신호가 발생하므로 셋팅되는 봉에서 buy조건이 동시충족되면 다음봉에서 동시에 신호가 나올수 있습니다. 이럴경우 동시셋팅되지 않게 아래와 같이 buy1조건이 아니라는 내용을 추가로 적어주셔야 합니다. !(조건)이 지정된 조건이 아니라는 표현입니다. if IsEntryName("buy1")==False and !(buy1매수조건) Then{ if countif(CrossDown(sma44,sma45),3) >=1 Then Sell("Sell",AtLimit,c+pricescale*1); } 즐거운 하루되세요 > 파티아 님이 쓴 글입니다. > 제목 : 문의드립니다 > 안녕하세요 늘감사합니다 30분봉입니다 buy1 매수중에는 sell 진입을 금지하고 싶은데도 계속 진입이 되네요 수식 수정 부탁드려요 감사합니다 if IsEntryName("buy1")==False Then{ if countif(CrossDown(sma44,sma45),3) >=1 Then Sell("Sell",AtLimit,c+pricescale*1); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-01-27 11:28:55

안녕하세요 예스스탁입니다. 현재 구현하시는 수식은 매수가 피라미딩되는 수식입니다. IsEntryName는 포지션의 첫진입명을 리턴합니다. 즉 Buy --> Buy1 상황이면 Buy를 리턴합니다. 포지션의 가장 최근 진입명은 LatestEntryName가 리턴합니다. 아래와 같이 작성하시면 무포지션이거나 매수포지션이면 최근진입이 Buy1이 아니고 buy1의 if조건과 동일하지 않을때만 진입하게 됩니다. if MarketPosition == 0 or (MarketPosition == 1 && LatestEntryName(0) != "Buy1" && !(nday >= 10 and data1(c) < data2(c) and countif(CrossDown(sma44,sma45+0.5),3) >=1) ) Then{ if countif(CrossDown(sma44,sma45),3) >=1 Then Sell("Sell",AtLimit,c+pricescale*1); } 즐거운 하루되세요 > 파티아 님이 쓴 글입니다. > 제목 : 재문의합니다 > 안녕하세요 답변 매번 감사합니다 (buy1매수조건)을 어떻게 추가하는것인지 난감하네요 아래 buy1수식을 첨부합니다 if nday >= 10 then if data1(c) < data2(c) Then if countif(CrossDown(sma44,sma45+0.5),3) >=1 Then Buy("Buy1",AtLimit,c-pricescale*1); 다시한번 부탁드립니다 감사합니다 안녕하세요 예스스탁입니다. 작성하신 식이시면 첨부된 그림과 같이 buy1로 진입중에 sell이 발생하지 않습니다. 다만 Sell진입이 봉완성시 값을 셋팅하고 다음봉에서 신호가 발생하므로 셋팅되는 봉에서 buy조건이 동시충족되면 다음봉에서 동시에 신호가 나올수 있습니다. 이럴경우 동시셋팅되지 않게 아래와 같이 buy1조건이 아니라는 내용을 추가로 적어주셔야 합니다. !(조건)이 지정된 조건이 아니라는 표현입니다. if IsEntryName("buy1")==False and !(buy1매수조건) Then{ if countif(CrossDown(sma44,sma45),3) >=1 Then Sell("Sell",AtLimit,c+pricescale*1); } 즐거운 하루되세요 > 파티아 님이 쓴 글입니다. > 제목 : 문의드립니다 > 안녕하세요 늘감사합니다 30분봉입니다 buy1 매수중에는 sell 진입을 금지하고 싶은데도 계속 진입이 되네요 수식 수정 부탁드려요 감사합니다 if IsEntryName("buy1")==False Then{ if countif(CrossDown(sma44,sma45),3) >=1 Then Sell("Sell",AtLimit,c+pricescale*1); }