커뮤니티

부탁드립니다.

프로필 이미지
라떼처럼
2019-10-22 21:14:28
125
글번호 133030
답변완료
안녕하세요 작성해주신 수식 감사합니다. 몇가지만 추가 부탁드립니다. 최초 ★(누적 -120) 이후 익절로 인한 SetStopTrailing 위 tx 가 "0"이 될때 까지 매수매도(B1, S1, B2, S2) 위에 ■를 표시 하고 싶습니다. "0"이후 다시 ★ 발생되면 ■ 표시 반복합니다. 목적은 스팟을 이용하여 "■"표시된 매수매도(B1, S1, B2, S2)만 인식하여 진입하기 위함입니다. 그럼 부탁드립니다. 예) B2 --> SetStopTrailing : 0 B1 --> SetStopLoss : -40 B2 --> SetStopLoss : -80 S1 --> SetStopLoss : -120 ★ # -120시작, 매수 매도에 ■ 표시 B2 ■ --> SetStopLoss : -160 ★ B1 ■ --> SetStopTrailing :-130 ★ B2 ■ --> SetStopTrailing :-100 S1 ■ --> SetStopTrailing :-70 B1 ■ --> SetStopTrailing :-40 B1 ■ --> SetStopTrailing :-10 S2 ■ --> SetStopTrailing : 0 # 0 끝, 다음 매수 매도에 ■ 표시 종료 B1 --> SetStopTrailing : -40 B2 --> SetStopLoss : -80 S1 --> SetStopLoss : -120 ★ # -120시작, 매수 매도에 ■ 표시 B2 ■ Input : 손절(20),익절(15),익절하락(3); input : P1(30), P2(120), p3(240); input : StartTime(090000),EndTime(050000); var : tx(0),X(false); var: Tcond(false); var1 = ma(C, P1); var2 = ma(C, P2); var3 = ma(C, P3); ######## 진입제한 if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then { Tcond = true; } if (sdate != sdate[1] and stime >= Endtime) or (sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then { Tcond = false; } ## 진입 if Tcond == true and marketposition == 0 and crossup(var1,var2) Then { buy("B1"); } if Tcond == true and marketposition == 0 and crossdown(var1,var2) Then { sell("S1"); } if Tcond == true and marketposition == 0 and crossup(var2,var3) and var3[1] < var3 Then { buy("B2"); } if Tcond == true and marketposition == 0 and crossdown(var3,var4) and var3[1] > var3 Then { sell("S2"); } ## 청산 if MarketPosition == 1 then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if MarketPosition == -1 Then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if ((sdate != sdate[1] and stime >= Endtime) or (sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)) Then { if MarketPosition == 1 Then { ExitLong("BE6"); } if MarketPosition == -1 Then { ExitShort("SE6"); } } var : tt(0); if TotalTrades > TotalTrades[1] then { if IsExitName("StopLoss",1) == true then { tt = tt - 40; if tt >= 0 Then tt = 0; if tt > -120 then { tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)); Text_SetSize(tx,20); } else { tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★"); Text_SetSize(tx,20); } } if IsExitName("StopTrailing",1) == true then { tt = tt + 30; if tt >= 0 Then { tt = 0; X = true; } tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)); Text_SetSize(tx,20); Text_Setstyle(tx,2,2); //Text_SetSize 폰트 사이즈 //Text_Setstyle 좌우상하 정렬 } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-10-23 11:49:47

안녕하세요 예스스탁입니다. Input : 손절(20),익절(15),익절하락(3); input : P1(30), P2(120), p3(240); input : StartTime(090000),EndTime(050000); var : tx(0),X(false),Tcond(false),tt(0); var1 = ma(C, P1); var2 = ma(C, P2); var3 = ma(C, P3); ######## 진입제한 if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then { Tcond = true; } if (sdate != sdate[1] and stime >= Endtime) or (sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then { Tcond = false; } ## 진입 if Tcond == true and marketposition == 0 and crossup(var1,var2) Then { if Condition1 == false then buy("B1"); Else buy("B1■"); } if Tcond == true and marketposition == 0 and crossdown(var1,var2) Then { if Condition1 == false then sell("S1"); Else sell("S1■"); } if Tcond == true and marketposition == 0 and crossup(var2,var3) and var3[1] < var3 Then { if Condition1 == false then buy("B2"); Else buy("B2■"); } if Tcond == true and marketposition == 0 and crossdown(var3,var4) and var3[1] > var3 Then { if Condition1 == false then sell("S2"); Else sell("S2■"); } ## 청산 if MarketPosition == 1 then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if MarketPosition == -1 Then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if ((sdate != sdate[1] and stime >= Endtime) or (sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)) Then { if MarketPosition == 1 Then { ExitLong("BE6"); } if MarketPosition == -1 Then { ExitShort("SE6"); } } if TotalTrades > TotalTrades[1] then { if IsExitName("StopLoss",1) == true then { tt = tt - 40; if tt >= 0 Then { tt = 0; Condition1 = false; } if tt > -120 then { tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)); Text_SetSize(tx,20); } else { Condition1 = true; tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★"); Text_SetSize(tx,20); } } if IsExitName("StopTrailing",1) == true then { tt = tt + 30; if tt >= 0 Then { tt = 0; X = true; Condition1 = false; } tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)); Text_SetSize(tx,20); Text_Setstyle(tx,2,2); //Text_SetSize 폰트 사이즈 //Text_Setstyle 좌우상하 정렬 } } 즐거운 하루되세요 > 라떼처럼 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 안녕하세요 작성해주신 수식 감사합니다. 몇가지만 추가 부탁드립니다. 최초 ★(누적 -120) 이후 익절로 인한 SetStopTrailing 위 tx 가 "0"이 될때 까지 매수매도(B1, S1, B2, S2) 위에 ■를 표시 하고 싶습니다. "0"이후 다시 ★ 발생되면 ■ 표시 반복합니다. 목적은 스팟을 이용하여 "■"표시된 매수매도(B1, S1, B2, S2)만 인식하여 진입하기 위함입니다. 그럼 부탁드립니다. 예) B2 --> SetStopTrailing : 0 B1 --> SetStopLoss : -40 B2 --> SetStopLoss : -80 S1 --> SetStopLoss : -120 ★ # -120시작, 매수 매도에 ■ 표시 B2 ■ --> SetStopLoss : -160 ★ B1 ■ --> SetStopTrailing :-130 ★ B2 ■ --> SetStopTrailing :-100 S1 ■ --> SetStopTrailing :-70 B1 ■ --> SetStopTrailing :-40 B1 ■ --> SetStopTrailing :-10 S2 ■ --> SetStopTrailing : 0 # 0 끝, 다음 매수 매도에 ■ 표시 종료 B1 --> SetStopTrailing : -40 B2 --> SetStopLoss : -80 S1 --> SetStopLoss : -120 ★ # -120시작, 매수 매도에 ■ 표시 B2 ■ Input : 손절(20),익절(15),익절하락(3); input : P1(30), P2(120), p3(240); input : StartTime(090000),EndTime(050000); var : tx(0),X(false); var: Tcond(false); var1 = ma(C, P1); var2 = ma(C, P2); var3 = ma(C, P3); ######## 진입제한 if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then { Tcond = true; } if (sdate != sdate[1] and stime >= Endtime) or (sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then { Tcond = false; } ## 진입 if Tcond == true and marketposition == 0 and crossup(var1,var2) Then { buy("B1"); } if Tcond == true and marketposition == 0 and crossdown(var1,var2) Then { sell("S1"); } if Tcond == true and marketposition == 0 and crossup(var2,var3) and var3[1] < var3 Then { buy("B2"); } if Tcond == true and marketposition == 0 and crossdown(var3,var4) and var3[1] > var3 Then { sell("S2"); } ## 청산 if MarketPosition == 1 then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if MarketPosition == -1 Then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if ((sdate != sdate[1] and stime >= Endtime) or (sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)) Then { if MarketPosition == 1 Then { ExitLong("BE6"); } if MarketPosition == -1 Then { ExitShort("SE6"); } } var : tt(0); if TotalTrades > TotalTrades[1] then { if IsExitName("StopLoss",1) == true then { tt = tt - 40; if tt >= 0 Then tt = 0; if tt > -120 then { tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)); Text_SetSize(tx,20); } else { tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★"); Text_SetSize(tx,20); } } if IsExitName("StopTrailing",1) == true then { tt = tt + 30; if tt >= 0 Then { tt = 0; X = true; } tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)); Text_SetSize(tx,20); Text_Setstyle(tx,2,2); //Text_SetSize 폰트 사이즈 //Text_Setstyle 좌우상하 정렬 } }