커뮤니티

34659번 질문 추가 질문

프로필 이미지
자아준
2014-01-30 00:10:53
178
글번호 72010
답변완료
수고하십니다 다중 진입에서 각각의 조건이 다른 진입에 34659의 사용자함수를 사용한 청산을 적용할 때 변수들이 달라질 것입니다. 그러면, 변수명도 달리 만들어야 하는데 그 방법은 어떻케 하는지 부탁드립니다. 34659번 질문 답변내용 안녕하세요 예스스탁입니다. 아래 2개 사용자함수 만드셔서 사용하시면 됩니다. 1. 사용자함수명 : ReadyToUp 반환값형 : 논리형 사용자 함수식 : input: MaxShootUpAngle(Numeric), AngleWeight(Numeric), SwingStrength(Numeric),각하봉(Numeric),각상봉(Numeric); var : ShootUpAngle(0), // 상승각도 PrevLowTime(0), //전 저점 시간 PrevLow(0),//전 저점 가격 ReadyTofallfall(False), //급등시 하락 반전 조건 X1(0),X2(0), //X좌표(시간) Y1(0),Y2(0), //Y좌표(가격) ShootDnAngle(0), // 상승각도 PrevhighTime(0), //전 저점 시간 Prevhigh(0),//전 저점 가격 ReadyToUpUp(False), //급등시 하락 반전 조건 SX1(0),SX2(0), //X좌표(시간) SY1(0),SY2(0); //Y좌표(가격) If SwingLowBar(1,Low, SwingStrength, SwingStrength, SwingStrength*2+1)==SwingStrength then{ PrevLow=Low[SwingStrength]; PrevLowTime=sTime[SwingStrength]; } X1=1; X2=1+(TimeToMinutes(Time)-TimeToMinutes(PrevLowTime))*AngleWeight; Y1=PrevLow; Y2=Close; If (Y2-Y1)<>0 and (X2-X1)<>0 Then ShootupAngle =ArcTangent((Y2-Y1)/(X2-X1))*180/3.14; ReadyTofallfall=False; If ShootUpAngle>MaxShootUpAngle Then ReadyTofallfall=True; If SwingHighBar(1,High, SwingStrength, SwingStrength, SwingStrength*2+1)==SwingStrength then{ Prevhigh=high[SwingStrength]; PrevhighTime=sTime[SwingStrength]; } SX1=1; SX2=1+(TimeToMinutes(Time)-TimeToMinutes(PrevhighTime))*AngleWeight; SY1=Prevhigh; SY2=Close; If (SY2-SY1)<>0 and (SX2-SX1)<>0 Then ShootDnAngle =ArcTangent((SY2-SY1)/(SX2-SX1))*180/3.14; ReadyToUpUp=False; If ShootDnAngle<-MaxShootUpAngle Then ReadyToUpUp=True; ReadyToUp = ReadyToUpUp; 2. 사용자함수명 : ReadyToFall 반환값형 : 논리형 사용자 함수식 : input: MaxShootUpAngle(Numeric), AngleWeight(Numeric), SwingStrength(Numeric),각하봉(Numeric),각상봉(Numeric); var : ShootUpAngle(0), // 상승각도 PrevLowTime(0), //전 저점 시간 PrevLow(0),//전 저점 가격 ReadyTofallfall(False), //급등시 하락 반전 조건 X1(0),X2(0), //X좌표(시간) Y1(0),Y2(0), //Y좌표(가격) ShootDnAngle(0), // 상승각도 PrevhighTime(0), //전 저점 시간 Prevhigh(0),//전 저점 가격 ReadyToUpUp(False), //급등시 하락 반전 조건 SX1(0),SX2(0), //X좌표(시간) SY1(0),SY2(0); //Y좌표(가격) If SwingLowBar(1,Low, SwingStrength, SwingStrength, SwingStrength*2+1)==SwingStrength then{ PrevLow=Low[SwingStrength]; PrevLowTime=sTime[SwingStrength]; } X1=1; X2=1+(TimeToMinutes(Time)-TimeToMinutes(PrevLowTime))*AngleWeight; Y1=PrevLow; Y2=Close; If (Y2-Y1)<>0 and (X2-X1)<>0 Then ShootupAngle =ArcTangent((Y2-Y1)/(X2-X1))*180/3.14; ReadyTofallfall=False; If ShootUpAngle>MaxShootUpAngle Then ReadyTofallfall=True; If SwingHighBar(1,High, SwingStrength, SwingStrength, SwingStrength*2+1)==SwingStrength then{ Prevhigh=high[SwingStrength]; PrevhighTime=sTime[SwingStrength]; } SX1=1; SX2=1+(TimeToMinutes(Time)-TimeToMinutes(PrevhighTime))*AngleWeight; SY1=Prevhigh; SY2=Close; If (SY2-SY1)<>0 and (SX2-SX1)<>0 Then ShootDnAngle =ArcTangent((SY2-SY1)/(SX2-SX1))*180/3.14; ReadyToUpUp=False; If ShootDnAngle<-MaxShootUpAngle Then ReadyToUpUp=True; ReadyTofall = ReadyTofallfall; 3. 시스템식에서는 아래와 같이 작성해 사용하시면 됩니다. input: MaxShootUpAngle(85), AngleWeight(0.029), SwingStrength(2),각하봉(5),각상봉(4); If ReadyToFall(MaxShootUpAngle,AngleWeight,SwingStrength,각하봉,각상봉) == true and Marketposition==1 Then ExitLong("급각수청", AtStop,Lowest(Low,각하봉)); If ReadyToUp(MaxShootUpAngle,AngleWeight,SwingStrength,각하봉,각상봉) == true and Marketposition==-1 Then ExitShort("급각도청", AtStop,Highest(High,각상봉));
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-02-03 10:26:33

안녕하세요 예스스탁입니다. 사용자함수를 추가로 만드실 필요가 없습니다. 사용자함수는 하나의 계산식에 외부변수만 변경해서 사용하기 위해 만드는 것이므로 시스템식에서 필요한 갯수만큼 아래와 같이 각 외부변수 달리해서 변수에 저장해 사용하시면 됩니다. input: M1(1), A1(1), S1(1),각하봉1(1),각상봉1(1); input: M2(2), A2(2), S2(2),각하봉2(2),각상봉2(2); input: M3(3), A3(3), S3(3),각하봉3(3),각상봉3(3); var : up1(false),up2(false),up3(false); var : fall1(false),fall2(false),fall3(false); up1 = ReadyToUp(M1,A1,S1,각하봉1,각상봉1); up2 = ReadyToUp(M2,A2,S2,각하봉2,각상봉2); up3 = ReadyToUp(M3,A3,S3,각하봉3,각상봉3); fall1 = ReadyToUp(M1,A1,S1,각하봉1,각상봉1); fall2 = ReadyToUp(M2,A2,S2,각하봉2,각상봉2); fall3 = ReadyToUp(M3,A3,S3,각하봉3,각상봉3); 즐거운 하루되세요 > 자아준 님이 쓴 글입니다. > 제목 : 34659번 질문 추가 질문 > 수고하십니다 다중 진입에서 각각의 조건이 다른 진입에 34659의 사용자함수를 사용한 청산을 적용할 때 변수들이 달라질 것입니다. 그러면, 변수명도 달리 만들어야 하는데 그 방법은 어떻케 하는지 부탁드립니다. 34659번 질문 답변내용 안녕하세요 예스스탁입니다. 아래 2개 사용자함수 만드셔서 사용하시면 됩니다. 1. 사용자함수명 : ReadyToUp 반환값형 : 논리형 사용자 함수식 : input: MaxShootUpAngle(Numeric), AngleWeight(Numeric), SwingStrength(Numeric),각하봉(Numeric),각상봉(Numeric); var : ShootUpAngle(0), // 상승각도 PrevLowTime(0), //전 저점 시간 PrevLow(0),//전 저점 가격 ReadyTofallfall(False), //급등시 하락 반전 조건 X1(0),X2(0), //X좌표(시간) Y1(0),Y2(0), //Y좌표(가격) ShootDnAngle(0), // 상승각도 PrevhighTime(0), //전 저점 시간 Prevhigh(0),//전 저점 가격 ReadyToUpUp(False), //급등시 하락 반전 조건 SX1(0),SX2(0), //X좌표(시간) SY1(0),SY2(0); //Y좌표(가격) If SwingLowBar(1,Low, SwingStrength, SwingStrength, SwingStrength*2+1)==SwingStrength then{ PrevLow=Low[SwingStrength]; PrevLowTime=sTime[SwingStrength]; } X1=1; X2=1+(TimeToMinutes(Time)-TimeToMinutes(PrevLowTime))*AngleWeight; Y1=PrevLow; Y2=Close; If (Y2-Y1)<>0 and (X2-X1)<>0 Then ShootupAngle =ArcTangent((Y2-Y1)/(X2-X1))*180/3.14; ReadyTofallfall=False; If ShootUpAngle>MaxShootUpAngle Then ReadyTofallfall=True; If SwingHighBar(1,High, SwingStrength, SwingStrength, SwingStrength*2+1)==SwingStrength then{ Prevhigh=high[SwingStrength]; PrevhighTime=sTime[SwingStrength]; } SX1=1; SX2=1+(TimeToMinutes(Time)-TimeToMinutes(PrevhighTime))*AngleWeight; SY1=Prevhigh; SY2=Close; If (SY2-SY1)<>0 and (SX2-SX1)<>0 Then ShootDnAngle =ArcTangent((SY2-SY1)/(SX2-SX1))*180/3.14; ReadyToUpUp=False; If ShootDnAngle<-MaxShootUpAngle Then ReadyToUpUp=True; ReadyToUp = ReadyToUpUp; 2. 사용자함수명 : ReadyToFall 반환값형 : 논리형 사용자 함수식 : input: MaxShootUpAngle(Numeric), AngleWeight(Numeric), SwingStrength(Numeric),각하봉(Numeric),각상봉(Numeric); var : ShootUpAngle(0), // 상승각도 PrevLowTime(0), //전 저점 시간 PrevLow(0),//전 저점 가격 ReadyTofallfall(False), //급등시 하락 반전 조건 X1(0),X2(0), //X좌표(시간) Y1(0),Y2(0), //Y좌표(가격) ShootDnAngle(0), // 상승각도 PrevhighTime(0), //전 저점 시간 Prevhigh(0),//전 저점 가격 ReadyToUpUp(False), //급등시 하락 반전 조건 SX1(0),SX2(0), //X좌표(시간) SY1(0),SY2(0); //Y좌표(가격) If SwingLowBar(1,Low, SwingStrength, SwingStrength, SwingStrength*2+1)==SwingStrength then{ PrevLow=Low[SwingStrength]; PrevLowTime=sTime[SwingStrength]; } X1=1; X2=1+(TimeToMinutes(Time)-TimeToMinutes(PrevLowTime))*AngleWeight; Y1=PrevLow; Y2=Close; If (Y2-Y1)<>0 and (X2-X1)<>0 Then ShootupAngle =ArcTangent((Y2-Y1)/(X2-X1))*180/3.14; ReadyTofallfall=False; If ShootUpAngle>MaxShootUpAngle Then ReadyTofallfall=True; If SwingHighBar(1,High, SwingStrength, SwingStrength, SwingStrength*2+1)==SwingStrength then{ Prevhigh=high[SwingStrength]; PrevhighTime=sTime[SwingStrength]; } SX1=1; SX2=1+(TimeToMinutes(Time)-TimeToMinutes(PrevhighTime))*AngleWeight; SY1=Prevhigh; SY2=Close; If (SY2-SY1)<>0 and (SX2-SX1)<>0 Then ShootDnAngle =ArcTangent((SY2-SY1)/(SX2-SX1))*180/3.14; ReadyToUpUp=False; If ShootDnAngle<-MaxShootUpAngle Then ReadyToUpUp=True; ReadyTofall = ReadyTofallfall; 3. 시스템식에서는 아래와 같이 작성해 사용하시면 됩니다. input: MaxShootUpAngle(85), AngleWeight(0.029), SwingStrength(2),각하봉(5),각상봉(4); If ReadyToFall(MaxShootUpAngle,AngleWeight,SwingStrength,각하봉,각상봉) == true and Marketposition==1 Then ExitLong("급각수청", AtStop,Lowest(Low,각하봉)); If ReadyToUp(MaxShootUpAngle,AngleWeight,SwingStrength,각하봉,각상봉) == true and Marketposition==-1 Then ExitShort("급각도청", AtStop,Highest(High,각상봉));