커뮤니티

기준가매매

프로필 이미지
추세승리
2020-08-24 08:27:52
1088
글번호 141670
답변완료

첨부 이미지

안녕하세요? 68832번 작성해주신 시스템이 예상치 못한 오차로 인해 수정부탁드립니다. 기본생각은 va6을 기준으로 설명드립니다(시진첨부), 첫째 var6을 돌파하여 봉이완성되면 시장가 매수하여 다음가격인 var5에 시장가 청산하고, 다시 var5를 돌파하여 봉이 완성되면 시장가매수하여 var4가격에도달시 시장가청산 합니다(즉 var4가격도달시 시장가청산). 만약 var6에서 매수진입하였는데 va6을 하향돌파 봉완성하면 매수청산후 매도하여 var7청산하고. 다시 var7을 하향돌파하여 봉완성되면 다시 시장가매도하여 다음var8에서 시장가청산합니다. = 진입제한 예를 들면 var6에서 "매수"하였는데.. var6을 하향돌파하여 "매도"로 포지션이 바뀐경우 각1회만 진입하고 두번째진입후 ""10분동안 다시 매수 및 매도진입을 금지""하도록 수식 부탁드립니다. 즉 1번씩 포지션진입후 10분동안 신호발생하여도 진입금지하며 10분이후발생한 신호부터 진입하도록 수식 부탁드립니다. 10분의 ""시간은 변수""로 지정하여 주시기 바랍니다. 둘째 = 모든 var기준가를 상승돌파하면 매수후 "다음var가격에 시장가청산". 반대로 하향돌파하면 매도하여 다음아래var가격에 시장가청산하도록 부탁드립니다... 68832처럼 손절과 스탑은 수식에서 제외하고 간단하게 진입과 청산 그리고 반대방향진입만 부탁드립니다 그림2는 기준가별로 주가가 왔다갔다 할때 기준가를 기준으로 매수매도를 진입하는 것을 화살표로 표시한 것입니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-08-24 14:58:26

안녕하세요 예스스탁입니다. 1 input : N(10); var : T(0),T1(0),T2(0); var : S1(0),D1(0),TM(0); Var1 = DayClose(1); Var2 = DayHIGH(1); Var3 = DayLOW(1); VAR4 = (VAR2-VAR3); // 상승 Var5 = Var1+(Var4*0.382); Var6 = Var1+(Var4*0.168); // 하락 Var7 = Var1-(Var4*0.168); Var8 = Var1-(Var4*0.382); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; if CrossUp(c,var1) Then { T = 1; T1 = T[1]; T2 = T1[1]; Condition1 = MarketPosition == 0 or (MarketPosition == -1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition1 == true Then Buy("b1"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx1"); } if CrossDown(c,var1) Then { T = -1; T1 = T[1]; T2 = T1[1]; Condition2 = MarketPosition == 0 or (MarketPosition == 1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition2 == true Then Sell("s1"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx1"); } if CrossUp(c,var2) Then { T = 2; T1 = T[1]; T2 = T1[1]; Condition1 = MarketPosition == 0 or (MarketPosition == -1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition1 == true Then Buy("b2"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx2"); } if CrossDown(c,var2) Then { T = -2; T1 = T[1]; T2 = T1[1]; Condition2 = MarketPosition == 0 or (MarketPosition == 1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition2 == true Then Sell("s2"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx2"); } if CrossUp(c,var3) Then { T = 3; T1 = T[1]; T2 = T1[1]; Condition1 = MarketPosition == 0 or (MarketPosition == -1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition1 == true Then Buy("b3"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx3"); } if CrossDown(c,var3) Then { T = -3; T1 = T[1]; T2 = T1[1]; Condition2 = MarketPosition == 0 or (MarketPosition == 1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition2 == true Then Sell("s3"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx3"); } if CrossUp(c,var5) Then { T = 5; T1 = T[1]; T2 = T1[1]; Condition1 = MarketPosition == 0 or (MarketPosition == -1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition1 == true Then Buy("b5"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx5"); } if CrossDown(c,var5) Then { T = -5; T1 = T[1]; T2 = T1[1]; Condition2 = MarketPosition == 0 or (MarketPosition == 1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition2 == true Then Sell("s5"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx5"); } if CrossUp(c,var6) Then { T = 6; T1 = T[1]; T2 = T1[1]; Condition1 = MarketPosition == 0 or (MarketPosition == -1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition1 == true Then Buy("b6"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx6"); } if CrossDown(c,var6) Then { T = -6; T1 = T[1]; T2 = T1[1]; Condition2 = MarketPosition == 0 or (MarketPosition == 1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition2 == true Then Sell("s6"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx6"); } if CrossUp(c,var7) Then { T = 7; T1 = T[1]; T2 = T1[1]; Condition1 = MarketPosition == 0 or (MarketPosition == -1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition1 == true Then Buy("b7"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx7"); } if CrossDown(c,var7) Then { T = -7; T1 = T[1]; T2 = T1[1]; Condition2 = MarketPosition == 0 or (MarketPosition == 1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition2 == true Then Sell("s7"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx7"); } if CrossUp(c,var8) Then { T = 8; T1 = T[1]; T2 = T1[1]; Condition1 = MarketPosition == 0 or (MarketPosition == -1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition1 == true Then Buy("b8"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx8"); } if CrossDown(c,var8) Then { T = -8; T1 = T[1]; T2 = T1[1]; Condition2 = MarketPosition == 0 or (MarketPosition == 1 and (abs(T) != abs(T1) or abs(T) != abs(T2) or (abs(T) == abs(T1) and abs(T1) == abs(T2) and TM >= TM[BarsSinceEntry]+N))); if Condition2 == true Then Sell("s8"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx8"); } } 2 var : T(0); Var1 = DayClose(1); Var2 = DayHIGH(1); Var3 = DayLOW(1); VAR4 = (VAR2-VAR3); // 상승 Var5 = Var1+(Var4*0.382); Var6 = Var1+(Var4*0.168); // 하락 Var7 = Var1-(Var4*0.168); Var8 = Var1-(Var4*0.382); if CrossUp(c,var1) Then { T = 1; if MarketPosition <= 0 and T != T[1] Then Buy("b1"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx1"); } if CrossDown(c,var1) Then { T = -1; if MarketPosition >= 0 and T != T[1] Then Sell("s1"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx1"); } if CrossUp(c,var2) Then { T = 2; if MarketPosition <= 0 and T != T[1] Then Buy("b2"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx2"); } if CrossDown(c,var2) Then { T = -2; if MarketPosition >= 0 and T != T[1] Then Sell("s2"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx2"); } if CrossUp(c,var3) Then { T = 3; if MarketPosition <= 0 and T != T[1] Then Buy("b3"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx3"); } if CrossDown(c,var3) Then { T = -3; if MarketPosition >= 0 and T != T[1] Then Sell("s3"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx3"); } if CrossUp(c,var4) Then { T = 4; if MarketPosition <= 0 and T != T[1] Then Buy("b4"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx4"); } if CrossDown(c,var4) Then { T = -4; if MarketPosition >= 0 and T != T[1] Then Sell("s4"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx4"); } if CrossUp(c,var5) Then { T = 5; if MarketPosition <= 0 and T != T[1] Then Buy("b5"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx5"); } if CrossDown(c,var5) Then { T = -5; if MarketPosition >= 0 and T != T[1] Then Sell("s5"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx5"); } if CrossUp(c,var6) Then { T = 6; if MarketPosition <= 0 and T != T[1] Then Buy("b6"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx6"); } if CrossDown(c,var6) Then { T = -6; if MarketPosition >= 0 and T != T[1] Then Sell("s6"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx6"); } if CrossUp(c,var7) Then { T = 7; if MarketPosition <= 0 and T != T[1] Then Buy("b7"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx7"); } if CrossDown(c,var7) Then { T = -7; if MarketPosition >= 0 and T != T[1] Then Sell("s7"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx7"); } if CrossUp(c,var8) Then { T = 8; if MarketPosition <= 0 and T != T[1] Then Buy("b8"); if MarketPosition == 1 and T != T[BarsSinceEntry] Then ExitLong("bx8"); } if CrossDown(c,var8) Then { T = -8; if MarketPosition >= 0 and T != T[1] Then Sell("s8"); if MarketPosition == -1 and T != T[BarsSinceEntry] Then ExitShort("sx8"); } 즐거운 하루되세요 > 추세승리 님이 쓴 글입니다. > 제목 : 기준가매매 > 안녕하세요? 68832번 작성해주신 시스템이 예상치 못한 오차로 인해 수정부탁드립니다. 기본생각은 va6을 기준으로 설명드립니다(시진첨부), 첫째 var6을 돌파하여 봉이완성되면 시장가 매수하여 다음가격인 var5에 시장가 청산하고, 다시 var5를 돌파하여 봉이 완성되면 시장가매수하여 var4가격에도달시 시장가청산 합니다(즉 var4가격도달시 시장가청산). 만약 var6에서 매수진입하였는데 va6을 하향돌파 봉완성하면 매수청산후 매도하여 var7청산하고. 다시 var7을 하향돌파하여 봉완성되면 다시 시장가매도하여 다음var8에서 시장가청산합니다. = 진입제한 예를 들면 var6에서 "매수"하였는데.. var6을 하향돌파하여 "매도"로 포지션이 바뀐경우 각1회만 진입하고 두번째진입후 ""10분동안 다시 매수 및 매도진입을 금지""하도록 수식 부탁드립니다. 즉 1번씩 포지션진입후 10분동안 신호발생하여도 진입금지하며 10분이후발생한 신호부터 진입하도록 수식 부탁드립니다. 10분의 ""시간은 변수""로 지정하여 주시기 바랍니다. 둘째 = 모든 var기준가를 상승돌파하면 매수후 "다음var가격에 시장가청산". 반대로 하향돌파하면 매도하여 다음아래var가격에 시장가청산하도록 부탁드립니다... 68832처럼 손절과 스탑은 수식에서 제외하고 간단하게 진입과 청산 그리고 반대방향진입만 부탁드립니다 그림2는 기준가별로 주가가 왔다갔다 할때 기준가를 기준으로 매수매도를 진입하는 것을 화살표로 표시한 것입니다.