커뮤니티
재문의합니다
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. bandicam_2016-01-26_23-46-58-925.jpg (0.04 MB)
답변 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);
}
다음글
이전글