커뮤니티

수식 문의 드립니다.

프로필 이미지
동백초보
2023-01-18 09:26:26
519
글번호 165522
답변완료
안녕하세요 아래 수식에 다음 사항을 추가하려고 합니다. 부탁 드립니다. 1. 손절이 연속 2번이 되면 2번째 손절 후 다음 3분봉 시가에 반대로 진입힌다. 매수 2번 연속 손절이면 매도로 진입/ 매도 2번 연속 손절이면 매수로 진입 2. 매수 후 20 포인트 이상 상승 후 하락하여 진입가에 오면 스위칭. 매도 후 20 포인트 이상 하락 후 상승하여 진입가에 오면 스위칭 3. 매매 개시 후 총 이익이 200 포인트가 되면 당일 거래 종료 매매 개시 후 총 손실이 150 포인트가 되면 당일 거래 종료 항상 감사합니다. nput : 타주기분(30),P(5); input : 익절틱수(40),손절틱수(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0); Array : CC[100](0); 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; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P+2] > 0 then { sum1 = 0; sum2 = 0; sum3 = 0; for cnt = 0 to P-1 { sum1 = sum1 + CC[cnt]; sum2 = sum2 + CC[cnt+1]; sum3 = sum3 + CC[cnt+2]; } mav1 = sum1/P; mav2 = sum2/P; mav3 = sum3/P; if MarketPosition >= 0 and mav1 < mav2 and mav2 > mav3 Then Sell("s",AtMarket,Def,1); if MarketPosition <= 0 and mav1 > mav2 and mav2 < mav3 Then Buy("b",AtMarket,Def,1); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-01-18 15:28:55

안녕하세요 예스스탁입니다. input : 타주기분(30),P(5); input : 익절틱수(40),손절틱수(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0), Total_Profit(0), Profit(0); var : sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0),entry(0); Array : CC[100](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; Condition3 = False; Total_Profit = NetProfit; entry = 0; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; # 매매 개시 후 총 이익이 200 포인트가 되면 당일 거래 종료 # 매매 개시 후 총 손실이 150 포인트가 되면 당일 거래 종료 Profit = NetProfit - Total_Profit; if Profit >= 200 or Profit <= -150 Then { Condition3 = True; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P+2] > 0 then { sum1 = 0; sum2 = 0; sum3 = 0; for cnt = 0 to P-1 { sum1 = sum1 + CC[cnt]; sum2 = sum2 + CC[cnt+1]; sum3 = sum3 + CC[cnt+2]; } mav1 = sum1/P; mav2 = sum2/P; mav3 = sum3/P; if Condition3 == False and MarketPosition >= 0 and mav1 < mav2 and mav2 > mav3 Then Sell("s",AtMarket,Def,1); if Condition3 == False and MarketPosition <= 0 and mav1 > mav2 and mav2 < mav3 Then Buy("b",AtMarket,Def,1); } if Condition3 == False Then { # 매수 2번 연속 손절이면 매도로 진입 if MarketPosition == 0 and entry > 1 and (MarketPosition(1) == 1 and ExitName(1) == "StopLoss") and (MarketPosition(2) == 1 and ExitName(2) == "StopLoss") Then { Sell("s2",AtMarket,Def,1); } # 매도 2번 연속 손절이면 매수로 진입 if MarketPosition == 0 and entry > 1 and (MarketPosition(1) == -1 and ExitName(1) == "StopLoss") and (MarketPosition(2) == -1 and ExitName(2) == "StopLoss") Then { Buy("b2",AtMarket,Def,1); } # 매수 후 20 포인트 이상 상승 후 하락하여 진입가에 오면 스위칭 if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice+20 Then { Sell("s3",AtStop,EntryPrice(0)); } # 매도 후 20 포인트 이상 하락 후 상승하여 진입가에 오면 스위칭 if MarketPosition == -1 and Lowest(L,BarsSinceEntry) <= EntryPrice-20 Then { Buy("b3",AtStop,EntryPrice(0)); } } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); 즐거운 하루되세요 > 동백초보 님이 쓴 글입니다. > 제목 : 수식 문의 드립니다. > 안녕하세요 아래 수식에 다음 사항을 추가하려고 합니다. 부탁 드립니다. 1. 손절이 연속 2번이 되면 2번째 손절 후 다음 3분봉 시가에 반대로 진입힌다. 매수 2번 연속 손절이면 매도로 진입/ 매도 2번 연속 손절이면 매수로 진입 2. 매수 후 20 포인트 이상 상승 후 하락하여 진입가에 오면 스위칭. 매도 후 20 포인트 이상 하락 후 상승하여 진입가에 오면 스위칭 3. 매매 개시 후 총 이익이 200 포인트가 되면 당일 거래 종료 매매 개시 후 총 손실이 150 포인트가 되면 당일 거래 종료 항상 감사합니다. nput : 타주기분(30),P(5); input : 익절틱수(40),손절틱수(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0); Array : CC[100](0); 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; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P+2] > 0 then { sum1 = 0; sum2 = 0; sum3 = 0; for cnt = 0 to P-1 { sum1 = sum1 + CC[cnt]; sum2 = sum2 + CC[cnt+1]; sum3 = sum3 + CC[cnt+2]; } mav1 = sum1/P; mav2 = sum2/P; mav3 = sum3/P; if MarketPosition >= 0 and mav1 < mav2 and mav2 > mav3 Then Sell("s",AtMarket,Def,1); if MarketPosition <= 0 and mav1 > mav2 and mav2 < mav3 Then Buy("b",AtMarket,Def,1); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);