커뮤니티

간단한 실수 같은데...

프로필 이미지
초인
2010-11-19 12:58:25
1010
글번호 33742
답변완료
var1 = TimeHigh(090000, 110000); value1 = 0; if stime >= 110000 then { if CrossUp(ma(c,SP),var1) and marketposition == 0 and !(cond == 1) Then Buy("B1"); if CrossDown(ma(c,SP),var1) Then{ ExitLong("EL1"); cond == 1; } } 청산 "EL1" 이 발생했으면(cond ==1 로 조절), Buy("B1")이 발생하지 말고... 다른식으로 청산된 경우는 Buy("B1")이 발생 되게 하려고 하는데... !(cond == 1) , cond == 1 사용하면, "EL1" 발생후에도 "B1"이 발생합니다. !(cond = 1) , cond = 1 사용하면, "B1"이 아예 발생하지 않는것 같고요.. 뭐가 잘못 되었나요? 그리고 cond()이 아니고 value1()를 사용할 경우에는 어떻게 하는지도 좀 알려주세요.. 부탁드려요~
시스템
답변 4
프로필 이미지

캐빈이야

2010-11-19 12:30:03

var : cond(0); var1 = TimeHigh(090000, 110000); if stime >= 110000 then { if CrossUp(ma(c,SP),var1) and marketposition == 0 and !(cond == 1) Then Buy("B1"); if CrossDown(ma(c,SP),var1) Then{ ExitLong("EL1"); cond = 1; <============================ 여기 수정합니다. } } > 초인 님이 쓴 글입니다. > 제목 : 간단한 실수 같은데... > var : cond(0); var1 = TimeHigh(090000, 110000); if stime >= 110000 then { if CrossUp(ma(c,SP),var1) and marketposition == 0 and !(cond == 1) Then Buy("B1"); if CrossDown(ma(c,SP),var1) Then{ ExitLong("EL1"); cond == 1; } } 청산 "EL1" 이 발생했으면(cond ==1 로 조절), Buy("B1")이 발생하지 말고... 다른식으로 청산된 경우는 Buy("B1")이 발생 되게 하려고 하는데... !(cond == 1) , cond == 1 사용하면, "EL1" 발생후에도 "B1"이 발생합니다. !(cond = 1) , cond = 1 사용하면, "B1"이 아예 발생하지 않는것 같고요.. 뭐가 잘못 되었나요? 부탁드려요~
프로필 이미지

초인

2010-11-19 12:41:47

그럴경우 EL1이후 발생되지 말아야할 B1 이 발생하는데요... > 캐빈이야 님이 쓴 글입니다. > 제목 : Re : 간단한 실수 같은데... > var : cond(0); var1 = TimeHigh(090000, 110000); if stime >= 110000 then { if CrossUp(ma(c,SP),var1) and marketposition == 0 and !(cond == 1) Then Buy("B1"); if CrossDown(ma(c,SP),var1) Then{ ExitLong("EL1"); cond = 1; <============================ 여기 수정합니다. } } > 초인 님이 쓴 글입니다. > 제목 : 간단한 실수 같은데... > var : cond(0); var1 = TimeHigh(090000, 110000); if stime >= 110000 then { if CrossUp(ma(c,SP),var1) and marketposition == 0 and !(cond == 1) Then Buy("B1"); if CrossDown(ma(c,SP),var1) Then{ ExitLong("EL1"); cond == 1; } } 청산 "EL1" 이 발생했으면(cond ==1 로 조절), Buy("B1")이 발생하지 말고... 다른식으로 청산된 경우는 Buy("B1")이 발생 되게 하려고 하는데... !(cond == 1) , cond == 1 사용하면, "EL1" 발생후에도 "B1"이 발생합니다. !(cond = 1) , cond = 1 사용하면, "B1"이 아예 발생하지 않는것 같고요.. 뭐가 잘못 되었나요? 부탁드려요~
프로필 이미지

예스스탁 예스스탁 답변

2010-11-19 16:46:50

안녕하세요 예스스탁입니다. =와 ==를 혼동하시는 것 같습니다. 예스랭귀지에서 =는 할당을 ==는 같다를 나타냅니다. A = B 로 작성하시면 B의 값을 A에 저장한다는 의미입니다. A == B는 A와 B가 같다라는 표현입니다. 그러므로 if ~ then 안에서는 =는 사용되지 않고 if~then 밖에서는 ==가 사용되지 않습니다. if stime >= 110000 then { if CrossUp(ma(c,SP),var1) and marketposition == 0 and !(cond == 1) Then# cond = 1 이나 !(cond = 1)은 잘못된 표현입니다. Buy("B1"); if CrossDown(ma(c,SP),var1) Then{ ExitLong("EL1"); cond = 1;#Cond == 1;은 잘못된 표현입니다. } } 즐거운 하루되세요 > 초인 님이 쓴 글입니다. > 제목 : 간단한 실수 같은데... > var1 = TimeHigh(090000, 110000); value1 = 0; if stime >= 110000 then { if CrossUp(ma(c,SP),var1) and marketposition == 0 and !(cond == 1) Then Buy("B1"); if CrossDown(ma(c,SP),var1) Then{ ExitLong("EL1"); cond == 1; } } 청산 "EL1" 이 발생했으면(cond ==1 로 조절), Buy("B1")이 발생하지 말고... 다른식으로 청산된 경우는 Buy("B1")이 발생 되게 하려고 하는데... !(cond == 1) , cond == 1 사용하면, "EL1" 발생후에도 "B1"이 발생합니다. !(cond = 1) , cond = 1 사용하면, "B1"이 아예 발생하지 않는것 같고요.. 뭐가 잘못 되었나요? 그리고 cond()이 아니고 value1()를 사용할 경우에는 어떻게 하는지도 좀 알려주세요.. 부탁드려요~
프로필 이미지

캐빈이야

2010-11-19 18:40:41

var : cond(0); var1 = TimeHigh(090000, 110000); if stime >= 110000 then { if CrossUp(ma(c,SP),var1) and marketposition == 0 and (cond != 1) Then <= 수정요 Buy("B1"); if CrossDown(ma(c,SP),var1) Then{ ExitLong("EL1"); cond = 1; <============================ 여기 수정합니다. } } 예스스탁 답변에서 수정된 내용이 없고 설명만 되어 있어 변경해서 올려드립니다. > 초인 님이 쓴 글입니다. > 제목 : Re : Re : 간단한 실수 같은데... > 그럴경우 EL1이후 발생되지 말아야할 B1 이 발생하는데요... > 캐빈이야 님이 쓴 글입니다. > 제목 : Re : 간단한 실수 같은데... > var : cond(0); var1 = TimeHigh(090000, 110000); if stime >= 110000 then { if CrossUp(ma(c,SP),var1) and marketposition == 0 and !(cond == 1) Then Buy("B1"); if CrossDown(ma(c,SP),var1) Then{ ExitLong("EL1"); cond = 1; <============================ 여기 수정합니다. } } > 초인 님이 쓴 글입니다. > 제목 : 간단한 실수 같은데... > var : cond(0); var1 = TimeHigh(090000, 110000); if stime >= 110000 then { if CrossUp(ma(c,SP),var1) and marketposition == 0 and !(cond == 1) Then Buy("B1"); if CrossDown(ma(c,SP),var1) Then{ ExitLong("EL1"); cond == 1; } } 청산 "EL1" 이 발생했으면(cond ==1 로 조절), Buy("B1")이 발생하지 말고... 다른식으로 청산된 경우는 Buy("B1")이 발생 되게 하려고 하는데... !(cond == 1) , cond == 1 사용하면, "EL1" 발생후에도 "B1"이 발생합니다. !(cond = 1) , cond = 1 사용하면, "B1"이 아예 발생하지 않는것 같고요.. 뭐가 잘못 되었나요? 부탁드려요~