본문 바로가기
카테고리 없음

이전 문제 풀기

by Nomad3795 2024. 9. 17.
반응형

내가 작성해본 정답

//@version=5

strategy("my strategy", overlay=true)

//시간대별 값 요청

close1 = request.security(syminfo.tickerid, "60", close)

close4 = request.security(syminfo.tickerid, "240", close)

closed = request.security(syminfo.tickerid, "D", close)

 

//타임 프레임별 7일선 ta.sma는 이동평균계산함수

SMA1_7 = ta.sma(close, close1)

SMA4_7 = ta.sma(close, close4)

SMAD_7 = ta.sma(close, closed)

//타임 프레임별 14일선

SMA1_14 = ta.sma(close, close1)

SMA4_14 = ta.sma(close, close4)

SMAD_14 = ta.sma(close, closed)

//조건설정 crossover는 상향돌파 crossunder는 하향돌파 //시간대별로 만들기

buy_1condition = ta.crossover(SMA1_7, SMA1_14)

buy_4condition = ta.crossover(SMA4_7, SMA4_14)

buy_Dcondition = ta.crossover(SMAD_7, SMAD_14)

sell_1condition = ta.crossunder(SMA1_7, SMA1_14)

sell_4condition = ta.crossunder(SMA4_7, SMA4_14)

sell_Dcondition = ta.crossunder(SMAD_7, SMAD_14)

//추가조건 먼저 카운트 후 갯수 세기

Longcount = (buy_1condition ? 1:0) + (buy_4condition ? 1:0) + (buy_Dcondition ? 1:0)

Shortcount = (sell_1condition ? 1:0) + (sell_4coindition ? 1:0) + (sell_Dcondition ? 1:0)

//최종 조건 2개이상 작은 시그널 발생시

Buy_signal = Longcount >= 2

Sell_signal = Shortcount >= 2

//진입설정

if(Buy_signal)

strategy.entry("Buy", strategy.long)

if(Sell_signal)

strategy.entry("Buy", strategy.short)

//시각화

plotshape(series=Buy_signal, location=location.belowbar, color = color.new(color.green, 30), style=shape.labelup, text="buy" textcolor= color.white)

plotshape(series=Sell_signal, location=location.belowbar, color = color.new(color.red, 30), style=shape.labelup, text="buy" textcolor= color.white)

GPT 피드백

코드 작성의 기본 구조는 잘 되어 있지만, 몇 가지 수정해야 할 사항이 있습니다. 특히, 이동 평균 계산 부분매도 조건의 오타, plotshape의 위치 문제 등을 수정해야 합니다.

주요 수정 사항:

  1. 이동 평균 계산 함수:
    • 이동 평균을 계산할 때 close1, close4, closed를 직접 사용하려는 부분에서 잘못된 부분이 있습니다. ta.sma(close1, 7)처럼 7일 이동 평균을 계산해야 합니다.
    • 또한, 14일 이동 평균도 같은 방식으로 수정해야 합니다.
  2. 오타 수정:
    • sell_4coindition → sell_4condition으로 수정해야 합니다.
  3. plotshape 위치 및 텍스트 오타:
    • text="buy" 부분에서 텍스트 설정이 잘못되었습니다. 또한, location=location.belowbar는 매도 신호일 때는 location.abovebar로 설정하는 것이 좋습니다.

      //@version=5
      strategy("my strategy", overlay=true)

      // 시간대별 값 요청
      close1 = request.security(syminfo.tickerid, "60", close)
      close4 = request.security(syminfo.tickerid, "240", close)
      closed = request.security(syminfo.tickerid, "D", close)

      // 타임 프레임별 7일 이동 평균 계산
      SMA1_7 = ta.sma(close1, 7)
      SMA4_7 = ta.sma(close4, 7)
      SMAD_7 = ta.sma(closed, 7)

      // 타임 프레임별 14일 이동 평균 계산
      SMA1_14 = ta.sma(close1, 14)
      SMA4_14 = ta.sma(close4, 14)
      SMAD_14 = ta.sma(closed, 14)

      // 조건 설정 (crossover는 상향 돌파, crossunder는 하향 돌파)
      buy_1condition = ta.crossover(SMA1_7, SMA1_14)
      buy_4condition = ta.crossover(SMA4_7, SMA4_14)
      buy_Dcondition = ta.crossover(SMAD_7, SMAD_14)

      sell_1condition = ta.crossunder(SMA1_7, SMA1_14)
      sell_4condition = ta.crossunder(SMA4_7, SMA4_14)
      sell_Dcondition = ta.crossunder(SMAD_7, SMAD_14)

      // 추가 조건 - 카운트 후 개수 세기
      Longcount = (buy_1condition ? 1 : 0) + (buy_4condition ? 1 : 0) + (buy_Dcondition ? 1 : 0)
      Shortcount = (sell_1condition ? 1 : 0) + (sell_4condition ? 1 : 0) + (sell_Dcondition ? 1 : 0)

      // 최종 조건 - 2개 이상일 때 시그널 발생
      Buy_signal = Longcount >= 2
      Sell_signal = Shortcount >= 2

      // 진입 설정
      if (Buy_signal)
          strategy.entry("Buy", strategy.long)
      if (Sell_signal)
          strategy.entry("Sell", strategy.short)  // 매도는 'Sell'로 변경

      // 시각화
      plotshape(series=Buy_signal, location=location.belowbar, color=color.new(color.green, 30), style=shape.labelup, text="BUY", textcolor=color.white)
      plotshape(series=Sell_signal, location=location.abovebar, color=color.new(color.red, 30), style=shape.labeldown, text="SELL", textcolor=color.white)

      함수하나 , 오타등이 틀렸내요 아직 많이 어렵습니다.

      매매일지 무료로 작성하세요
      https://geckotrade.co.kr/
 

GeckoTrade

크립토 트레이딩 매매일지 작성

geckotrade.co.kr

 

반응형