커뮤니티

질문있습니다

프로필 이미지
구구주녀
2010-06-30 16:59:01
755
글번호 30692
답변완료
Input: Capital(1000000000), alpha(10), beta(2), Unit(1); Var: NN(0), TotalCapital(0), diff(0), Unit2(0); diff = high - Low; Condition1 = Open[1] > Low[1] + diff * 0.8; Condition3 = Close[0] < low[1] + diff * 0.2; Condition5 = open[0] < low[1] - alpha * Ticks; Condition2 = Open[0] < low[1] + diff * 0.2; Condition4 = close[1] > low[1] + diff * 0.8; Condition6 = open[0] > high[1] + alpha * Ticks; condition7 = condition1 && Condition3 && Condition5; Condition8 = condition2 && Condition4 && Condition6; If Condition7 == True and condition8 == false Then Buy("매수", Atstop, LowD[1], unit); If Condition8 == True and condition7 == false then Sell("매도", Atstop, HighD[1], unit); If MarketPosition < 0 Then { ExitLong("손절매 매수청산", Atstop, LowD); Exitlong("추적 매수청산", Atstop, Highest(high, BarsSinceEntry + 1) - beta * Ticks); } if MarketPosition < 0 Then { ExitShort("손절매 매도청산", Atstop, HighD); Exitshort("추적 매도청산", Atstop, Lowest(low, BarsSinceEntry + 1) + beta * Ticks); } If date[1] <> date Then { Exitlong("종가 매수청산", Onclose); Exitshort("종가 매도청산", Onclose); } 이렇게 작성했는데요.. 오류로 "외부함수의 입력값이 1개 필요합니다" 라고 나옵니다.. 아마 LowD, HighD 를 의미하는거 같은데.. input: HighD(Numeric), lowD(Numeric); 으로 썼더니 "함수의 입력변수 선언시에만 쓸 수 있습니다" 라고 나오네요 ㅠㅠ 제가 사용자함수를 쓰는 법을 잘 모르겠는데.. 어떻게 쓰는지좀 가르쳐주시면 감사하겠습니다
시스템
답변 2
프로필 이미지

캐빈이야

2010-06-30 23:41:17

LowD는 일기준으로 저가를 가져오는 값으로 당일인지, 전날인지 값을 꼭 넣어줘야 합니다. LowD(0) = 당일 저가 LowD(1) = 전날 저가 LowD(2) = 전전날 저가 HighD(0) = 당일 고가 HighD(1) = 전날 고가 HighD(2) = 전전날 고가 이렇게 바꾸시면 되고 input으로 LowD,HighD 설정을 빼셔야 합니다. LowD자체가 함수이므로 사용할수 없습니다. LowD -- > LowD(0) HighD -- > HighD(0) > 구구주녀 님이 쓴 글입니다. > 제목 : 질문있습니다 > Input: Capital(1000000000), alpha(10), beta(2), Unit(1); Var: NN(0), TotalCapital(0), diff(0), Unit2(0); diff = high - Low; Condition1 = Open[1] > Low[1] + diff * 0.8; Condition3 = Close[0] < low[1] + diff * 0.2; Condition5 = open[0] < low[1] - alpha * Ticks; Condition2 = Open[0] < low[1] + diff * 0.2; Condition4 = close[1] > low[1] + diff * 0.8; Condition6 = open[0] > high[1] + alpha * Ticks; condition7 = condition1 && Condition3 && Condition5; Condition8 = condition2 && Condition4 && Condition6; If Condition7 == True and condition8 == false Then Buy("매수", Atstop, LowD[1], unit); If Condition8 == True and condition7 == false then Sell("매도", Atstop, HighD[1], unit); If MarketPosition < 0 Then { ExitLong("손절매 매수청산", Atstop, LowD); Exitlong("추적 매수청산", Atstop, Highest(high, BarsSinceEntry + 1) - beta * Ticks); } if MarketPosition < 0 Then { ExitShort("손절매 매도청산", Atstop, HighD); Exitshort("추적 매도청산", Atstop, Lowest(low, BarsSinceEntry + 1) + beta * Ticks); } If date[1] <> date Then { Exitlong("종가 매수청산", Onclose); Exitshort("종가 매도청산", Onclose); } 이렇게 작성했는데요.. 오류로 "외부함수의 입력값이 1개 필요합니다" 라고 나옵니다.. 아마 LowD, HighD 를 의미하는거 같은데.. input: HighD(Numeric), lowD(Numeric); 으로 썼더니 "함수의 입력변수 선언시에만 쓸 수 있습니다" 라고 나오네요 ㅠㅠ 제가 사용자함수를 쓰는 법을 잘 모르겠는데.. 어떻게 쓰는지좀 가르쳐주시면 감사하겠습니다
프로필 이미지

예스스탁 예스스탁 답변

2010-07-01 09:18:22

안녕하세요 예스스탁입니다. Input: Capital(1000000000), alpha(10), beta(2), Unit(1); Var: NN(0), TotalCapital(0), diff(0), Unit2(0); diff = high - Low; Condition1 = Open[1] > Low[1] + diff * 0.8; Condition3 = Close[0] < low[1] + diff * 0.2; Condition5 = open[0] < low[1] - alpha * Ticks; Condition2 = Open[0] < low[1] + diff * 0.2; Condition4 = close[1] > low[1] + diff * 0.8; Condition6 = open[0] > high[1] + alpha * Ticks; condition7 = condition1 && Condition3 && Condition5; Condition8 = condition2 && Condition4 && Condition6; If Condition7 == True and condition8 == false Then Buy("매수", Atstop, LowD(1), unit); If Condition8 == True and condition7 == false then Sell("매도", Atstop, HighD(1), unit); If MarketPosition < 0 Then { ExitLong("손절매 매수청산", Atstop, LowD(0)); Exitlong("추적 매수청산", Atstop, Highest(high, BarsSinceEntry + 1) - beta * Ticks); } if MarketPosition < 0 Then { ExitShort("손절매 매도청산", Atstop, HighD(0)); Exitshort("추적 매도청산", Atstop, Lowest(low, BarsSinceEntry + 1) + beta * Ticks); } If date[1] <> date Then { Exitlong("종가 매수청산", Onclose); Exitshort("종가 매도청산", Onclose); } Opnd,HighD,LowD,CloseD함수는 당일값은 (0), 전일은 (1), 전전일은(2)로 작성하셔야 합니다. 만약 HighD[1]와 같이 작성하시면 전봉기준 당일최고값이라는 내용이 되므로 작성시 유의하시기 바랍니다. 즐거운 하루되세요 > 구구주녀 님이 쓴 글입니다. > 제목 : 질문있습니다 > Input: Capital(1000000000), alpha(10), beta(2), Unit(1); Var: NN(0), TotalCapital(0), diff(0), Unit2(0); diff = high - Low; Condition1 = Open[1] > Low[1] + diff * 0.8; Condition3 = Close[0] < low[1] + diff * 0.2; Condition5 = open[0] < low[1] - alpha * Ticks; Condition2 = Open[0] < low[1] + diff * 0.2; Condition4 = close[1] > low[1] + diff * 0.8; Condition6 = open[0] > high[1] + alpha * Ticks; condition7 = condition1 && Condition3 && Condition5; Condition8 = condition2 && Condition4 && Condition6; If Condition7 == True and condition8 == false Then Buy("매수", Atstop, LowD[1], unit); If Condition8 == True and condition7 == false then Sell("매도", Atstop, HighD[1], unit); If MarketPosition < 0 Then { ExitLong("손절매 매수청산", Atstop, LowD); Exitlong("추적 매수청산", Atstop, Highest(high, BarsSinceEntry + 1) - beta * Ticks); } if MarketPosition < 0 Then { ExitShort("손절매 매도청산", Atstop, HighD); Exitshort("추적 매도청산", Atstop, Lowest(low, BarsSinceEntry + 1) + beta * Ticks); } If date[1] <> date Then { Exitlong("종가 매수청산", Onclose); Exitshort("종가 매도청산", Onclose); } 이렇게 작성했는데요.. 오류로 "외부함수의 입력값이 1개 필요합니다" 라고 나옵니다.. 아마 LowD, HighD 를 의미하는거 같은데.. input: HighD(Numeric), lowD(Numeric); 으로 썼더니 "함수의 입력변수 선언시에만 쓸 수 있습니다" 라고 나오네요 ㅠㅠ 제가 사용자함수를 쓰는 법을 잘 모르겠는데.. 어떻게 쓰는지좀 가르쳐주시면 감사하겠습니다