커뮤니티

수식 수정 부탁드러요

프로필 이미지
한걸음7
2012-07-03 13:40:10
352
글번호 52555
답변완료
안녕하세요. 봉간격을 두어 진입총수량을 변수 값을 내어 A 는 총 진입수 B 는 최초 진입시 개수를 정할려고 하는데 B 신호를 3로 해도 5개 모두 진입이 됩니다. 제가 원하는 것은 변수 A 6와 B 3로 두어 ( 피라미딩은 모든신호 허용) s1,s2,s3,s6,s7,s8 하기를 원합니다. 아래 수식으로 하니 s1,s2,s3,s4,s5,s6 원하는 신호가 나오지않아 수정 부탁드립니다. Input : shortPeriod(5), longPeriod(20),A(6),B(3); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); if data1(stime>090100 and stime <= 150000) and CurrentContracts < A then{ if CrossUP(value1, value2) Then{ if MarketPosition == 0 or MarketPosition == -1and CurrentContracts < B Then Sell("s1",OnClose,def,1); Sell("s2",OnClose,def,1); Sell("s3",OnClose,def,1); Sell("s4",OnClose,def,1); Sell("s5",OnClose,def,1); } if MarketPosition == -1 and CrossUP(value1[1], value2[1]) Then Sell("s6",OnClose,def,1); if MarketPosition == -1 and CrossUP(value1[2], value2[2]) Then Sell("s7",OnClose,def,1); if MarketPosition == -1 and CrossUP(value1[3], value2[3]) Then Sell("s8",OnClose,def,1); if MarketPosition == -1 and CrossUP(value1[4], value2[4]) Then Sell("s9",OnClose,def,1); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-07-04 15:21:18

안녕하세요 예스스탁입니다. CurrentContracts는 봉완성시에 현재 최종값만 한번 사용가능합니다. 아래와 같이 작성해 사용하셔야 합니다. Input : shortPeriod(5),longPeriod(20),A(6),B(3); var : BB(0); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); if data1(stime>090100 and stime <= 150000) then{ BB = 0; if MarketPosition == 0 and CrossUP(value1, value2) and BB < B Then{ Sell("s1",OnClose,def,1); BB = BB+1; } if MarketPosition == 0 and CrossUP(value1, value2) and BB < B Then{ Sell("s2",OnClose,def,1); BB = BB+1; } if MarketPosition == 0 and CrossUP(value1, value2) and BB < B Then{ Sell("s3",OnClose,def,1); BB = BB+1; } if MarketPosition == 0 and CrossUP(value1, value2) and BB < B Then{ Sell("s4",OnClose,def,1); BB = BB+1; } if MarketPosition == 0 and CrossUP(value1, value2) and BB < B Then{ Sell("s5",OnClose,def,1); BB = BB+1; } } if MarketPosition == -1 and CurrentContracts < A then{ if CrossUP(value1[1], value2[1]) Then Sell("s6",OnClose,def,1); if CrossUP(value1[2], value2[2]) Then Sell("s7",OnClose,def,1); if CrossUP(value1[3], value2[3]) Then Sell("s8",OnClose,def,1); if CrossUP(value1[4], value2[4]) Then Sell("s9",OnClose,def,1); } 즐거운 하루되세요 > 한걸음7 님이 쓴 글입니다. > 제목 : 수식 수정 부탁드러요 > 안녕하세요. 봉간격을 두어 진입총수량을 변수 값을 내어 A 는 총 진입수 B 는 최초 진입시 개수를 정할려고 하는데 B 신호를 3로 해도 5개 모두 진입이 됩니다. 제가 원하는 것은 변수 A 6와 B 3로 두어 ( 피라미딩은 모든신호 허용) s1,s2,s3,s6,s7,s8 하기를 원합니다. 아래 수식으로 하니 s1,s2,s3,s4,s5,s6 원하는 신호가 나오지않아 수정 부탁드립니다. Input : shortPeriod(5), longPeriod(20),A(6),B(3); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); if data1(stime>090100 and stime <= 150000) and CurrentContracts < A then{ if CrossUP(value1, value2) Then{ if MarketPosition == 0 or MarketPosition == -1and CurrentContracts < B Then Sell("s1",OnClose,def,1); Sell("s2",OnClose,def,1); Sell("s3",OnClose,def,1); Sell("s4",OnClose,def,1); Sell("s5",OnClose,def,1); } if MarketPosition == -1 and CrossUP(value1[1], value2[1]) Then Sell("s6",OnClose,def,1); if MarketPosition == -1 and CrossUP(value1[2], value2[2]) Then Sell("s7",OnClose,def,1); if MarketPosition == -1 and CrossUP(value1[3], value2[3]) Then Sell("s8",OnClose,def,1); if MarketPosition == -1 and CrossUP(value1[4], value2[4]) Then Sell("s9",OnClose,def,1); }