커뮤니티

피라미딩 안됨

프로필 이미지
좌오비우오비
2018-03-16 16:19:27
183
글번호 117469
답변완료

첨부 이미지

수정 수식에서 선언되지 않은 input : pyra(0.8)을 추가하여 시뮬레이션 했음에도 피라미딩이 안됩니다. (별첨1) 질문 57082 건 피라미딩 수식 if MarketPosition == 1 Then buy("bb",AtStop,LatestEntryPrice(0)+Pyra); 에서 buy를 sell로 +pyra를 -pyra로 바꾼 것인데 저도 이렇게 했더니 안되서 문의드렸던 것입니다. 다시 살펴주시면 고맙겠습니다. ********************** 안녕하세요 예스스탁입니다. input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000); var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{ T1 = TotalTrades; E1 = 0; HH = H; } if stime >= 시작시간 then{ if H > HH Then HH = H; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= HH-PriceScale*B1 and C[1] < HH-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; V1 = HH; //시작점 종가 } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; #고가가 시작봉종가보다 작을 때만 눌림체크 if H <= V1 and H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } //시작점 종가보다 높은 가격이 발생하면 초기화 if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; HH = H; } if H > HH Then HH = H; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s2"); E1 = 0; } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx1"); E1 = 0; } } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X2 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx2"); E1 = 0; } } } if MarketPosition == 1 and MaxContracts < 5 Then sell("ss",AtStop,LatestEntryPrice(0)-Pyra); } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 피라미딩 추가 > 아래 sell 수식에 피라미딩을 추가하고 싶습니다. * 0.8포인트씩 하락할 때마다 피라미딩 * input - pyra : 0.80 - 피라미딩누적한도 : 5개 항상 고맙습니다 *********************************** input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000); var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{ T1 = TotalTrades; E1 = 0; HH = H; } if stime >= 시작시간 then{ if H > HH Then HH = H; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= HH-PriceScale*B1 and C[1] < HH-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; V1 = HH; //시작점 종가 } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; #고가가 시작봉종가보다 작을 때만 눌림체크 if H <= V1 and H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } //시작점 종가보다 높은 가격이 발생하면 초기화 if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; HH = H; } if H > HH Then HH = H; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s2"); E1 = 0; } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx1"); E1 = 0; } } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X2 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx2"); E1 = 0; } } } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-03-16 16:27:09

안녕하세요 예스스탁입니다. 죄송합니다. 수식을 잘못 올려드렸습니다. 수정한 식입니다. 적용시 피라미딩 설정은 모든진입신호 허용으로 설정하고 적용하시면 됩니다. input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000),Pyra(0.8); var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{ T1 = TotalTrades; E1 = 0; HH = H; } if stime >= 시작시간 then{ if H > HH Then HH = H; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= HH-PriceScale*B1 and C[1] < HH-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; V1 = HH; //시작점 종가 } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; #고가가 시작봉종가보다 작을 때만 눌림체크 if H <= V1 and H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } //시작점 종가보다 높은 가격이 발생하면 초기화 if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; HH = H; } if H > HH Then HH = H; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s2"); E1 = 0; } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx1"); E1 = 0; } } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X2 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx2"); E1 = 0; } } } if MarketPosition == -1 and MaxContracts < 5 Then sell("ss",AtStop,LatestEntryPrice(0)-Pyra); } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 피라미딩 안됨 > 수정 수식에서 선언되지 않은 input : pyra(0.8)을 추가하여 시뮬레이션 했음에도 피라미딩이 안됩니다. (별첨1) 질문 57082 건 피라미딩 수식 if MarketPosition == 1 Then buy("bb",AtStop,LatestEntryPrice(0)+Pyra); 에서 buy를 sell로 +pyra를 -pyra로 바꾼 것인데 저도 이렇게 했더니 안되서 문의드렸던 것입니다. 다시 살펴주시면 고맙겠습니다. ********************** 안녕하세요 예스스탁입니다. input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000); var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{ T1 = TotalTrades; E1 = 0; HH = H; } if stime >= 시작시간 then{ if H > HH Then HH = H; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= HH-PriceScale*B1 and C[1] < HH-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; V1 = HH; //시작점 종가 } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; #고가가 시작봉종가보다 작을 때만 눌림체크 if H <= V1 and H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } //시작점 종가보다 높은 가격이 발생하면 초기화 if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; HH = H; } if H > HH Then HH = H; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s2"); E1 = 0; } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx1"); E1 = 0; } } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X2 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx2"); E1 = 0; } } } if MarketPosition == 1 and MaxContracts < 5 Then sell("ss",AtStop,LatestEntryPrice(0)-Pyra); } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 피라미딩 추가 > 아래 sell 수식에 피라미딩을 추가하고 싶습니다. * 0.8포인트씩 하락할 때마다 피라미딩 * input - pyra : 0.80 - 피라미딩누적한도 : 5개 항상 고맙습니다 *********************************** input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000); var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{ T1 = TotalTrades; E1 = 0; HH = H; } if stime >= 시작시간 then{ if H > HH Then HH = H; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= HH-PriceScale*B1 and C[1] < HH-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; V1 = HH; //시작점 종가 } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; #고가가 시작봉종가보다 작을 때만 눌림체크 if H <= V1 and H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } //시작점 종가보다 높은 가격이 발생하면 초기화 if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; HH = H; } if H > HH Then HH = H; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s2"); E1 = 0; } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx1"); E1 = 0; } } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X2 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx2"); E1 = 0; } } } }