커뮤니티
수식문의
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);
}
}
}