커뮤니티

수식문의

프로필 이미지
청각
2008-09-09 20:55:31
897
글번호 16973
답변완료
1.아래전략을 거래일수에 상관없이 20번만 거래하도록 수정해주십시요. 2.아래전략을 직적거래가 이익이 났을땐 2계약 손실이 났을땐 1계약식 체결되도록 코딩해주십시요 수고스롭게 해서 죄송합니다.^^ input : len(6), method(1),tt(141800),tt2(144200) ; var : var11(0),var12(0),var50(0),MP(0),currententrynum(0); Mp = Marketposition(); if MP != 0 and Mp[1] == 0 then currententrynum = currententrynum+1; //method에 따른 피봇라인 설정 If method == 1 Then { Var10 = (dayHigh(1) + dayLow(1) + dayclose(1)) / 3 ; //'피봇 Var11 = Var10 * 2 - dayLow(1); //'1차 저항 Var12 = Var10 + dayHigh(1) - dayLow(1); //'2차저항 Var9 = Var10 * 2 - dayHigh(1); //'1차 지지 Var8 = Var10 - dayHigh(1) + dayLow(1); // '2차지지 } Else { Var10 = (dayHigh(1) + dayLow(1) + dayclose(1)+dayopen(1)) / 4; //'피봇 Var11 = Var10 * 2 - dayLow(1); //'1차 저항 Var12 = Var10 + dayHigh(1) - dayLow(1); // '2차저항 Var9 = Var10 * 2 - dayHigh(1); // '1차 지지 Var8 = Var10 - dayHigh(1) + dayLow(1) ; // '2차지지 } //시가대비 영역별 지정가 돌파시 진입 If Var9 > dayopen() And dayopen() > Var8 Then { // '시가가 var9보다 작고 var8보다 크면 If sTIME <= tt Then { // '15:00분 이전이라면 If marketposition() == 0 And date <> entrydate(1) Then { //'하루에 한번만 진입 buy("매수1", Atstop, Var9); //'지정가 상향돌파시 매수 sell("매도1", Atstop,Var8); //'지정가 하향돌파시 매도 } } } If Var10 > dayopen() And dayopen() >= var9 Then{ If sTIME <= tt Then{ If marketposition()==0 And date<>entrydate(1) Then{ buy("매수2", Atstop, Var10); sell("매도2", Atstop, Var8); } } } If Var11 > dayopen() And dayopen() >= var10 Then{ If sTIME <= tt Then{ If marketposition() ==0 And date <> entrydate(1) Then{ buy("매수3", Atstop, Var12); sell("매도3", Atstop, Var10); } } } If Var12 > dayopen() And dayopen() >= var11 Then { If sTIME <= tt Then { If marketposition() ==0 And date <> entrydate(1) Then{ buy("매수4", Atstop, Var12); sell("매도4", Atstop, Var11); } } } If dayopen() >= var12 Then { If sTIME <= tt Then { If marketposition()==0 And date <> entrydate(1) Then { buy("매수5", Atstop, dayopen()+(Var12-var11)); sell("매도5", Atstop, Var12); } } } If dayopen() <= var8 Then { If sTIME <= tt Then{ If marketposition() == 0 And date <> entrydate(1) Then { buy("매수6", Atstop, Var8); sell("매도6", Atstop, dayopen()-(Var9-var8)); } } } //'청산 If marketposition() <> 0 Then { exitlong("매수청산", Atstop, nthhighest(1, high, barssinceentry()+1)-atr(20)*len); exitshort("매도청산", Atstop, nthlowest(1, low, barssinceentry()+1)+atr(20)*len); } If date <> date[1] Then { Var50=currententrynum; // 'currententrynum -- 현재까지의 시장 진입 횟수 // '(오픈포지션까지 포함) } If currententrynum-var50 == 1 Then{ ///'당일 매매가 한번 이루어진 경우 If isentryname("매수2") Or isentryname("매수3") Then {// '진입명칭이 매수2, 매수3인 경우 If dayhigh() > var12 And low > var11 Then { sell("역매도", Atstop, Var11); } } If isentryname("매도2") Or isentryname("매도3") Then {// '진입명칭이 매도2, 매도3인 경우 If daylow() < var8 And high < var9 Then{ buy("역매수", Atstop, Var9); } } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2008-09-10 09:34:12

안녕하세요 예스스탁입니다. input : len(6), method(1),tt(141800),tt2(144200) ; var : var11(0),var12(0),var50(0),MP(0),currententrynum(0); Mp = Marketposition(); if MP != 0 and Mp[1] == 0 then currententrynum = currententrynum+1; //method에 따른 피봇라인 설정 If method == 1 Then { Var10 = (dayHigh(1) + dayLow(1) + dayclose(1)) / 3 ; //'피봇 Var11 = Var10 * 2 - dayLow(1); //'1차 저항 Var12 = Var10 + dayHigh(1) - dayLow(1); //'2차저항 Var9 = Var10 * 2 - dayHigh(1); //'1차 지지 Var8 = Var10 - dayHigh(1) + dayLow(1); // '2차지지 } Else { Var10 = (dayHigh(1) + dayLow(1) + dayclose(1)+dayopen(1)) / 4; //'피봇 Var11 = Var10 * 2 - dayLow(1); //'1차 저항 Var12 = Var10 + dayHigh(1) - dayLow(1); // '2차저항 Var9 = Var10 * 2 - dayHigh(1); // '1차 지지 Var8 = Var10 - dayHigh(1) + dayLow(1) ; // '2차지지 } //시가대비 영역별 지정가 돌파시 진입 If Var9 > dayopen() And dayopen() > Var8 Then { // '시가가 var9보다 작고 var8보다 크면 If sTIME <= tt Then { // '15:00분 이전이라면 If TotalTrades < 20 and marketposition() == 0 And date <> entrydate(1) Then { //'하루에 한번만 진입 if PositionProfit(1) > 0 Then{ //직전거래 수익 buy("매수1", Atstop, Var9,2); //'지정가 상향돌파시 매수 sell("매도1", Atstop,Var8,2); //'지정가 하향돌파시 매도 } if PositionProfit(1) <= 0 Then{ //직전거래 손실 buy("매수11", Atstop, Var9,1); //'지정가 상향돌파시 매수 sell("매도11", Atstop,Var8,1); //'지정가 하향돌파시 매도 } } } } If Var10 > dayopen() And dayopen() >= var9 Then{ If sTIME <= tt Then{ If TotalTrades < 20 and marketposition()==0 And date<>entrydate(1) Then{ if PositionProfit(1) > 0 Then{ //직전거래 수익 buy("매수2", Atstop, Var10,2); sell("매도2", Atstop, Var8,2); } if PositionProfit(1) <= 0 Then{ //직전거래 손실 buy("매수22", Atstop, Var10,1); sell("매도22", Atstop, Var8,1); } } } } If Var11 > dayopen() And dayopen() >= var10 Then{ If sTIME <= tt Then{ If marketposition() ==0 And date <> entrydate(1) Then{ if PositionProfit(1) > 0 Then{ //직전거래 수익 buy("매수3", Atstop, Var12,2); sell("매도3", Atstop, Var10,2); } if PositionProfit(1) <= 0 Then{ //직전거래 손실 buy("매수33", Atstop, Var12,1); sell("매도33", Atstop, Var10,1); } } } } If Var12 > dayopen() And dayopen() >= var11 Then { If sTIME <= tt Then { If TotalTrades < 20 and marketposition() ==0 And date <> entrydate(1) Then{ if PositionProfit(1) > 0 Then{ //직전거래 수익 buy("매수4", Atstop, Var12,2); sell("매도4", Atstop, Var11,2); } if PositionProfit(1) <= 0 Then{ //직전거래 손실 buy("매수44", Atstop, Var12,1); sell("매도44", Atstop, Var11,1); } } } } If dayopen() >= var12 Then { If sTIME <= tt Then { If TotalTrades < 20 and marketposition()==0 And date <> entrydate(1) Then { if PositionProfit(1) > 0 Then{ //직전거래 수익 buy("매수5", Atstop, dayopen()+(Var12-var11)); sell("매도5", Atstop, Var12); } if PositionProfit(1) <= 0 Then{ //직전거래 손실 buy("매수55", Atstop, dayopen()+(Var12-var11)); sell("매도55", Atstop, Var12); } } } } If dayopen() <= var8 Then { If sTIME <= tt Then{ If TotalTrades < 20 and marketposition() == 0 And date <> entrydate(1) Then { if PositionProfit(1) > 0 Then{ buy("매수6", Atstop, Var8,2); sell("매도6", Atstop, dayopen()-(Var9-var8),2); } if PositionProfit(1) <= 0 Then{ buy("매수66", Atstop, Var8,1); sell("매도66", Atstop, dayopen()-(Var9-var8),1); } } } } //'청산 If marketposition() <> 0 Then { exitlong("매수청산", Atstop, nthhighest(1, high, barssinceentry()+1)-atr(20)*len); exitshort("매도청산", Atstop, nthlowest(1, low, barssinceentry()+1)+atr(20)*len); } If date <> date[1] Then { Var50=currententrynum; // 'currententrynum -- 현재까지의 시장 진입 횟수 // '(오픈포지션까지 포함) } If currententrynum-var50 == 1 Then{ ///'당일 매매가 한번 이루어진 경우 If isentryname("매수2") Or isentryname("매수3") Then {// '진입명칭이 매수2, 매수3인 경우 If TotalTrades < 20 and dayhigh() > var12 And low > var11 Then { sell("역매도", Atstop, Var11); } } If isentryname("매도2") Or isentryname("매도3") Then {// '진입명칭이 매도2, 매도3인 경우 If TotalTrades < 20 and daylow() < var8 And high < var9 Then{ buy("역매수", Atstop, Var9); } } } 즐거운 하루되세요 > 청각 님이 쓴 글입니다. > 제목 : 수식문의 > 1.아래전략을 거래일수에 상관없이 20번만 거래하도록 수정해주십시요. 2.아래전략을 직적거래가 이익이 났을땐 2계약 손실이 났을땐 1계약식 체결되도록 코딩해주십시요 수고스롭게 해서 죄송합니다.^^ input : len(6), method(1),tt(141800),tt2(144200) ; var : var11(0),var12(0),var50(0),MP(0),currententrynum(0); Mp = Marketposition(); if MP != 0 and Mp[1] == 0 then currententrynum = currententrynum+1; //method에 따른 피봇라인 설정 If method == 1 Then { Var10 = (dayHigh(1) + dayLow(1) + dayclose(1)) / 3 ; //'피봇 Var11 = Var10 * 2 - dayLow(1); //'1차 저항 Var12 = Var10 + dayHigh(1) - dayLow(1); //'2차저항 Var9 = Var10 * 2 - dayHigh(1); //'1차 지지 Var8 = Var10 - dayHigh(1) + dayLow(1); // '2차지지 } Else { Var10 = (dayHigh(1) + dayLow(1) + dayclose(1)+dayopen(1)) / 4; //'피봇 Var11 = Var10 * 2 - dayLow(1); //'1차 저항 Var12 = Var10 + dayHigh(1) - dayLow(1); // '2차저항 Var9 = Var10 * 2 - dayHigh(1); // '1차 지지 Var8 = Var10 - dayHigh(1) + dayLow(1) ; // '2차지지 } //시가대비 영역별 지정가 돌파시 진입 If Var9 > dayopen() And dayopen() > Var8 Then { // '시가가 var9보다 작고 var8보다 크면 If sTIME <= tt Then { // '15:00분 이전이라면 If marketposition() == 0 And date <> entrydate(1) Then { //'하루에 한번만 진입 buy("매수1", Atstop, Var9); //'지정가 상향돌파시 매수 sell("매도1", Atstop,Var8); //'지정가 하향돌파시 매도 } } } If Var10 > dayopen() And dayopen() >= var9 Then{ If sTIME <= tt Then{ If marketposition()==0 And date<>entrydate(1) Then{ buy("매수2", Atstop, Var10); sell("매도2", Atstop, Var8); } } } If Var11 > dayopen() And dayopen() >= var10 Then{ If sTIME <= tt Then{ If marketposition() ==0 And date <> entrydate(1) Then{ buy("매수3", Atstop, Var12); sell("매도3", Atstop, Var10); } } } If Var12 > dayopen() And dayopen() >= var11 Then { If sTIME <= tt Then { If marketposition() ==0 And date <> entrydate(1) Then{ buy("매수4", Atstop, Var12); sell("매도4", Atstop, Var11); } } } If dayopen() >= var12 Then { If sTIME <= tt Then { If marketposition()==0 And date <> entrydate(1) Then { buy("매수5", Atstop, dayopen()+(Var12-var11)); sell("매도5", Atstop, Var12); } } } If dayopen() <= var8 Then { If sTIME <= tt Then{ If marketposition() == 0 And date <> entrydate(1) Then { buy("매수6", Atstop, Var8); sell("매도6", Atstop, dayopen()-(Var9-var8)); } } } //'청산 If marketposition() <> 0 Then { exitlong("매수청산", Atstop, nthhighest(1, high, barssinceentry()+1)-atr(20)*len); exitshort("매도청산", Atstop, nthlowest(1, low, barssinceentry()+1)+atr(20)*len); } If date <> date[1] Then { Var50=currententrynum; // 'currententrynum -- 현재까지의 시장 진입 횟수 // '(오픈포지션까지 포함) } If currententrynum-var50 == 1 Then{ ///'당일 매매가 한번 이루어진 경우 If isentryname("매수2") Or isentryname("매수3") Then {// '진입명칭이 매수2, 매수3인 경우 If dayhigh() > var12 And low > var11 Then { sell("역매도", Atstop, Var11); } } If isentryname("매도2") Or isentryname("매도3") Then {// '진입명칭이 매도2, 매도3인 경우 If daylow() < var8 And high < var9 Then{ buy("역매수", Atstop, Var9); } } }