커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2023-02-07 12:12:55
1045
글번호 166052
답변완료
안녕하세요? 아래 글번호 80621번 재질문입니다. 답변주신 스크랩트에 하루 n번 진입 제어를 하고 싶습니다. 스크립트 수정 부탁드립니다. 아래와 같이 변경해보았는데 신호가 생성안되네요 1 input : 최대진입횟수(5); Var : Entry(0); Var : mav(0); mav = ma(c,100); if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition <= 0 and NextBarSdate == sDate and ((Bdate != Bdate[2] and CountIF(C>DayOpen,2) == 2) or (Bdate == Bdate[2] and CountIF(C>DayOpen,2) == 2 and C[2] < DayOpen)) and entry < 최대진입횟수 Then Buy("b",AtMarket); if MarketPosition == 1 Then { if CountIf(C<DayOpen,2) == 2 and BarsSinceEntry >= 2 Then ExitLong("bx1",AtMarket); if CountIf(C>DayOpen,4) == 4 and BarsSinceEntry >= 4 Then ExitLong("bx2",AtMarket); if CrossUp(c,mav) or CrossDown(c,mav) then ExitLong("bx3",AtMarket); } SetStopEndofday(152000); --------------------------------------------------------------------------- 안녕하세요 예스스탁입니다. 1 Var : mav(0); mav = ma(c,100); if MarketPosition <= 0 and NextBarSdate == sDate and ((Bdate != Bdate[2] and CountIF(C>DayOpen,2) == 2) or (Bdate == Bdate[2] and CountIF(C>DayOpen,2) == 2 and C[2] < DayOpen)) Then Buy("b",AtMarket); if MarketPosition == 1 Then { if CountIf(C<DayOpen,2) == 2 and BarsSinceEntry >= 2 Then ExitLong("bx1",AtMarket); if CountIf(C>DayOpen,4) == 4 and BarsSinceEntry >= 4 Then ExitLong("bx2",AtMarket); if CrossUp(c,mav) or CrossDown(c,mav) then ExitLong("bx3",AtMarket); } SetStopEndofday(152000); 2 Var : mav(0); mav = ma(c,100); if MarketPosition >= 0 and NextBarSdate == sDate and ((Bdate != Bdate[2] and CountIF(C<DayOpen,2) == 2) or (Bdate == Bdate[2] and CountIF(C<DayOpen,2) == 2 and C[2] > DayOpen)) Then Sell("s",AtMarket); if MarketPosition == -1 Then { if CountIf(C>DayOpen,2) == 2 and BarsSinceEntry >= 2 Then ExitShort("sx1",AtMarket); if CountIf(C<DayOpen,4) == 4 and BarsSinceEntry >= 4 Then ExitShort("sx2",AtMarket); if CrossUp(c,mav) or CrossDown(c,mav) then ExitLong("bx3",AtMarket); } SetStopEndofday(152000); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래 글번호 80612번 연장선상에서 질문드립니다. (답변주신 스크립트는 첫봉에서 부터 신호가 생성됩니다.) 국내선물 1분봉으로 일중거래를 하고자 합니다. [1] 당일 시가선 기준으로 2번 연속 돌파되면 익봉 시가 매수 당일 시가선 기준으로 2번 연속 이탈되면 익봉 시가 매수청산 당일 시가선 기준으로 4번 연속 돌파되면 익봉 시가 매수청산 100ma 돌파 및 이탈시 익봉 시가 매수청산 [2] 당일 시가선 기준으로 2번 연속 이탈되면 익봉 시가 매도 당일 시가선 기준으로 2번 연속 돌파되면 익봉 시가 매도청산 당일 시가선 기준으로 4번 연속 이탈되면 익봉 시가 매도청산 100ma 돌파 및 이탈시 익봉 시가 매도청산 청산조건은 or이며 15:20에는 강제청산입니다. 1번과 2번 각각의 스크립트 작성을 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-02-07 16:10:50

안녕하세요 예스스탁입니다. 날짜가 변경이 되면 entry변수가 0으로 초기화가 되어야 합니다. input : 최대진입횟수(5); Var : Entry(0); Var : mav(0); mav = ma(c,100); if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition <= 0 and NextBarSdate == sDate and ((Bdate != Bdate[2] and CountIF(C>DayOpen,2) == 2) or (Bdate == Bdate[2] and CountIF(C>DayOpen,2) == 2 and C[2] < DayOpen)) and entry < 최대진입횟수 Then Buy("b",AtMarket); if MarketPosition == 1 Then { if CountIf(C<DayOpen,2) == 2 and BarsSinceEntry >= 2 Then ExitLong("bx1",AtMarket); if CountIf(C>DayOpen,4) == 4 and BarsSinceEntry >= 4 Then ExitLong("bx2",AtMarket); if CrossUp(c,mav) or CrossDown(c,mav) then ExitLong("bx3",AtMarket); } SetStopEndofday(152000); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래 글번호 80621번 재질문입니다. 답변주신 스크랩트에 하루 n번 진입 제어를 하고 싶습니다. 스크립트 수정 부탁드립니다. 아래와 같이 변경해보았는데 신호가 생성안되네요 1 input : 최대진입횟수(5); Var : Entry(0); Var : mav(0); mav = ma(c,100); if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition <= 0 and NextBarSdate == sDate and ((Bdate != Bdate[2] and CountIF(C>DayOpen,2) == 2) or (Bdate == Bdate[2] and CountIF(C>DayOpen,2) == 2 and C[2] < DayOpen)) and entry < 최대진입횟수 Then Buy("b",AtMarket); if MarketPosition == 1 Then { if CountIf(C<DayOpen,2) == 2 and BarsSinceEntry >= 2 Then ExitLong("bx1",AtMarket); if CountIf(C>DayOpen,4) == 4 and BarsSinceEntry >= 4 Then ExitLong("bx2",AtMarket); if CrossUp(c,mav) or CrossDown(c,mav) then ExitLong("bx3",AtMarket); } SetStopEndofday(152000); --------------------------------------------------------------------------- 안녕하세요 예스스탁입니다. 1 Var : mav(0); mav = ma(c,100); if MarketPosition <= 0 and NextBarSdate == sDate and ((Bdate != Bdate[2] and CountIF(C>DayOpen,2) == 2) or (Bdate == Bdate[2] and CountIF(C>DayOpen,2) == 2 and C[2] < DayOpen)) Then Buy("b",AtMarket); if MarketPosition == 1 Then { if CountIf(C<DayOpen,2) == 2 and BarsSinceEntry >= 2 Then ExitLong("bx1",AtMarket); if CountIf(C>DayOpen,4) == 4 and BarsSinceEntry >= 4 Then ExitLong("bx2",AtMarket); if CrossUp(c,mav) or CrossDown(c,mav) then ExitLong("bx3",AtMarket); } SetStopEndofday(152000); 2 Var : mav(0); mav = ma(c,100); if MarketPosition >= 0 and NextBarSdate == sDate and ((Bdate != Bdate[2] and CountIF(C<DayOpen,2) == 2) or (Bdate == Bdate[2] and CountIF(C<DayOpen,2) == 2 and C[2] > DayOpen)) Then Sell("s",AtMarket); if MarketPosition == -1 Then { if CountIf(C>DayOpen,2) == 2 and BarsSinceEntry >= 2 Then ExitShort("sx1",AtMarket); if CountIf(C<DayOpen,4) == 4 and BarsSinceEntry >= 4 Then ExitShort("sx2",AtMarket); if CrossUp(c,mav) or CrossDown(c,mav) then ExitLong("bx3",AtMarket); } SetStopEndofday(152000); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래 글번호 80612번 연장선상에서 질문드립니다. (답변주신 스크립트는 첫봉에서 부터 신호가 생성됩니다.) 국내선물 1분봉으로 일중거래를 하고자 합니다. [1] 당일 시가선 기준으로 2번 연속 돌파되면 익봉 시가 매수 당일 시가선 기준으로 2번 연속 이탈되면 익봉 시가 매수청산 당일 시가선 기준으로 4번 연속 돌파되면 익봉 시가 매수청산 100ma 돌파 및 이탈시 익봉 시가 매수청산 [2] 당일 시가선 기준으로 2번 연속 이탈되면 익봉 시가 매도 당일 시가선 기준으로 2번 연속 돌파되면 익봉 시가 매도청산 당일 시가선 기준으로 4번 연속 이탈되면 익봉 시가 매도청산 100ma 돌파 및 이탈시 익봉 시가 매도청산 청산조건은 or이며 15:20에는 강제청산입니다. 1번과 2번 각각의 스크립트 작성을 부탁드립니다.