커뮤니티

부탁드립니다

프로필 이미지
이지컷
2011-07-20 00:41:56
526
글번호 41107
답변완료
if date != date[1] Then{ Condition1 = false; Condition2 = false; } if CrossDown(ma(c,5),ma(c,60)) Then{ var1 = L; Condition1 = true; } if Condition1 == true and ma(c,5) < ma(c,60) Then{ if L < var1 Then var1 = L; } if Condition1 == true and CrossDown(ma(c,5),ma(c,20)) Then{ var2 = L; Condition2 = true; } if Condition2 == true and ma(c,5) < ma(c,20) Then{ if L < var2 Then var2 = L; } if Condition1 == true and Condition2 == true and crossup(ma(c,5),ma(c,20)) and var1 > var2 Then{ var3 = c; buy("매수", AtStop, var3+PriceScale*5); } if MarketPosition == 1 and crossdown(ma(c,5),ma(c,20)) then ExitLong(); 위 식에서 첫진입은 제대로 되는것 같은데 2번째 진입부터 문제가 좀 있는것 같아서 몇부분 수정 부탁드립니다 1. 컨디션 1,2 는 모두 연속적으로 일어나야 하므로(한세트로 일어나야 함) 미리 조건1이 만족된 것을 기억해서 한참후에 조건2를 만족하면 안됩니다 그리고 조건 1,2는 지금 현재 상태에서 모두 만족되어야 매수가 들어갑니다(매수가 들어간 바로 그 시점이 컨디션 1,2가 연속적으로 만족되고 종가에서 5틱위 이어야 한다는 뜻입니다. 과거에 컨디션1,2 만족이 기억되어서는 안됨) 2. 컨디션 1,2가 모두 만족되었지만 5틱을 넘지 못해서 매수가 일어나지 못할경우 5일선,20일선이 데드크로스가 나면 모든 조건이 false 가 되고 다시 처음부터 새롭게 조건이 만족되어야 합니다 질문이 좀 두서없는것 같아서 죄성합니다 생각은 맴도는데 글로 풀어보려니 쉽지가 않군요 암튼 많은 도움 부탁드립니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-07-20 10:57:10

안녕하세요 예스스탁입니다. 문의하신 내용에 대해 정확히 이해하지 못했습니다. 아래식에 condition1과 condition2를 false로 만드는 내용을 추가했습니다. 주석을 참고하시기 바랍니다. if date != date[1] Then{ Condition1 = false; Condition2 = false; } if CrossDown(ma(c,5),ma(c,60)) Then{ var1 = L; Condition1 = true; } if CrossUp(ma(c,5),ma(c,60)) Then{ Condition1 = False; } if Condition1 == true and ma(c,5) < ma(c,60) Then{ if L < var1 Then var1 = L; } if Condition1 == true and CrossDown(ma(c,5),ma(c,20)) Then{ var2 = L; Condition2 = true; } if Condition2 == true and ma(c,5) < ma(c,20) Then{ if L < var2 Then var2 = L; } #condition1이 true인 상태에서 5-60 골드발생하면 Condition1은 false로 초기화 if Condition1 == true Then if CrossUp(ma(c,5),ma(c,60)) Then{ condition1 = false; } #매수진입에 들어가면 모두 false로 초기화 if MarketPosition == 1 Then{ condition1 = false; Condition2 = false; } if Condition1 == true and Condition2 == true and crossup(ma(c,5),ma(c,20)) and var1 > var2 Then{ buy("매수", AtStop, c+PriceScale*5); } if MarketPosition == 1 and crossdown(ma(c,5),ma(c,20)) then{ ExitLong(); } 즐거운 하루되세요 > 이지컷 님이 쓴 글입니다. > 제목 : 부탁드립니다 > if date != date[1] Then{ Condition1 = false; Condition2 = false; } if CrossDown(ma(c,5),ma(c,60)) Then{ var1 = L; Condition1 = true; } if Condition1 == true and ma(c,5) < ma(c,60) Then{ if L < var1 Then var1 = L; } if Condition1 == true and CrossDown(ma(c,5),ma(c,20)) Then{ var2 = L; Condition2 = true; } if Condition2 == true and ma(c,5) < ma(c,20) Then{ if L < var2 Then var2 = L; } if Condition1 == true and Condition2 == true and crossup(ma(c,5),ma(c,20)) and var1 > var2 Then{ var3 = c; buy("매수", AtStop, var3+PriceScale*5); } if MarketPosition == 1 and crossdown(ma(c,5),ma(c,20)) then ExitLong(); 위 식에서 첫진입은 제대로 되는것 같은데 2번째 진입부터 문제가 좀 있는것 같아서 몇부분 수정 부탁드립니다 1. 컨디션 1,2 는 모두 연속적으로 일어나야 하므로(한세트로 일어나야 함) 미리 조건1이 만족된 것을 기억해서 한참후에 조건2를 만족하면 안됩니다 그리고 조건 1,2는 지금 현재 상태에서 모두 만족되어야 매수가 들어갑니다(매수가 들어간 바로 그 시점이 컨디션 1,2가 연속적으로 만족되고 종가에서 5틱위 이어야 한다는 뜻입니다. 과거에 컨디션1,2 만족이 기억되어서는 안됨) 2. 컨디션 1,2가 모두 만족되었지만 5틱을 넘지 못해서 매수가 일어나지 못할경우 5일선,20일선이 데드크로스가 나면 모든 조건이 false 가 되고 다시 처음부터 새롭게 조건이 만족되어야 합니다 질문이 좀 두서없는것 같아서 죄성합니다 생각은 맴도는데 글로 풀어보려니 쉽지가 않군요 암튼 많은 도움 부탁드립니다