커뮤니티

바쁘신데 수정 좀 부탁드립니다

프로필 이미지
리치존
2013-08-08 13:45:56
158
글번호 66226
답변완료
바쁘신대도 불구하고 아래 수식을 작성해 주시어 대단히 감사합니다 제가 원하는 곳에 신호는 아주 잘 나옵니다 그런데 다음 기준가를 갈때까지 0.4P 눌림목마다 지속적으로 매매신호가 나오고 있는데 기준가를 터치했을때 첫 신호만 나오고 뒷 신호들은 나오지 않게 수정 부탁드립니다 .. 예를 들어 한 기준가를 터치하여 아래 수식 조건에 해당되어 한번 매매를 한후에 시간이 지나 또 그 기준가를 터치하여 수식 조건에 해당되면 또 매매는 할수가 있는데 첫 매매신호에 따라 매매만 하게 해주십시요 다음 기준가 갈때까지 눌림목 마다 매매신호가 나오지 않게 부탁드립니다....감사합니다 input : 기준가(250); var : direction(0),HH(0),LL(0); var1 = 기준가-5.0; var2 = 기준가-2.5; var3 = 기준가; var4 = 기준가+2.5; var5 = 기준가+5.0; if crossup(C,var1) Then { direction = 1; HH = H; } if crossup(C,var2) Then { direction = 2; HH = H; } if crossup(C,var3) Then { direction = 3; HH = H; } if crossup(C,var4) Then { direction = 4; HH = H; } if crossup(C,var5) Then { direction = 5; HH = H; } if CrossDown(C,var1) Then { direction = -1; LL = L; } if CrossDown(C,var2) Then { direction = -2; LL = L; } if CrossDown(C,var3) Then{ direction = -3; LL = L; } if CrossDown(C,var4) Then { direction = -4; LL = L; } if CrossDown(C,var5) Then { direction = -5; LL = L; } if H > HH Then HH = H; if L < LL Then LL = L; if stime >= 090000 and stime < 150000 then{ if direction == 1 and HH >= var1+0.8 Then buy("b1",AtLimit,HH-0.4); if direction == 2 and HH >= var2+0.8 Then buy("b2",AtLimit,HH-0.4); if direction == 3 and HH >= var3+0.8 Then buy("b3",AtLimit,HH-0.4); if direction == 4 and HH >= var4+0.8 Then buy("b4",AtLimit,HH-0.4); if direction == 5 and HH >= var5+0.8 Then buy("b5",AtLimit,HH-0.4); if direction == -1 and LL <= var1-0.8 Then Sell("s1",AtLimit,LL+0.4); if direction == -2 and LL <= var2-0.8 Then Sell("s2",AtLimit,LL+0.4); if direction == -3 and LL <= var3-0.8 Then Sell("s3",AtLimit,LL+0.4); if direction == -4 and LL <= var4-0.8 Then Sell("s4",AtLimit,LL+0.4); if direction == -5 and LL <= var5-0.8 Then Sell("s5",AtLimit,LL+0.4); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-08-08 16:48:10

안녕하세요 예스스탁입니다. 각 진입별로 하루 한번만 신호가 발생하게 수정했습니다. input : 기준가(250); var : direction(0),HH(0),LL(0),cnt(0); Condition1 = false; Condition2 = false; Condition3 = false; Condition4 = false; Condition5 = false; Condition11 = false; Condition12 = false; Condition13 = false; Condition14 = false; Condition15 = false; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then{ if IsEntryName("b1",cnt) == true Then Condition1 = true; if IsEntryName("b2",cnt) == true Then Condition2 = true; if IsEntryName("b3",cnt) == true Then Condition3 = true; if IsEntryName("b4",cnt) == true Then Condition4 = true; if IsEntryName("b5",cnt) == true Then Condition5 = true; if IsEntryName("s1",cnt) == true Then Condition11 = true; if IsEntryName("s2",cnt) == true Then Condition12 = true; if IsEntryName("s3",cnt) == true Then Condition13 = true; if IsEntryName("s4",cnt) == true Then Condition14 = true; if IsEntryName("s4",cnt) == true Then Condition15 = true; } } var1 = 기준가-5.0; var2 = 기준가-2.5; var3 = 기준가; var4 = 기준가+2.5; var5 = 기준가+5.0; if crossup(C,var1) Then { direction = 1; HH = H; } if crossup(C,var2) Then { direction = 2; HH = H; } if crossup(C,var3) Then { direction = 3; HH = H; } if crossup(C,var4) Then { direction = 4; HH = H; } if crossup(C,var5) Then { direction = 5; HH = H; } if CrossDown(C,var1) Then { direction = -1; LL = L; } if CrossDown(C,var2) Then { direction = -2; LL = L; } if CrossDown(C,var3) Then{ direction = -3; LL = L; } if CrossDown(C,var4) Then { direction = -4; LL = L; } if CrossDown(C,var5) Then { direction = -5; LL = L; } if H > HH Then HH = H; if L < LL Then LL = L; if stime >= 090000 and stime < 150000 then{ if direction == 1 and HH >= var1+0.8 and Condition1 == false Then buy("b1",AtLimit,HH-0.4); if direction == 2 and HH >= var2+0.8 and Condition2 == false Then buy("b2",AtLimit,HH-0.4); if direction == 3 and HH >= var3+0.8 and Condition3 == false Then buy("b3",AtLimit,HH-0.4); if direction == 4 and HH >= var4+0.8 and Condition4 == false Then buy("b4",AtLimit,HH-0.4); if direction == 5 and HH >= var5+0.8 and Condition5 == false Then buy("b5",AtLimit,HH-0.4); if direction == -1 and LL <= var1-0.8 and Condition11 == false Then Sell("s1",AtLimit,LL+0.4); if direction == -2 and LL <= var2-0.8 and Condition12 == false Then Sell("s2",AtLimit,LL+0.4); if direction == -3 and LL <= var3-0.8 and Condition13 == false Then Sell("s3",AtLimit,LL+0.4); if direction == -4 and LL <= var4-0.8 and Condition14 == false Then Sell("s4",AtLimit,LL+0.4); if direction == -5 and LL <= var5-0.8 and Condition15 == false Then Sell("s5",AtLimit,LL+0.4); } 즐거운 하루되세요 > 리치존 님이 쓴 글입니다. > 제목 : 바쁘신데 수정 좀 부탁드립니다 > 바쁘신대도 불구하고 아래 수식을 작성해 주시어 대단히 감사합니다 제가 원하는 곳에 신호는 아주 잘 나옵니다 그런데 다음 기준가를 갈때까지 0.4P 눌림목마다 지속적으로 매매신호가 나오고 있는데 기준가를 터치했을때 첫 신호만 나오고 뒷 신호들은 나오지 않게 수정 부탁드립니다 .. 예를 들어 한 기준가를 터치하여 아래 수식 조건에 해당되어 한번 매매를 한후에 시간이 지나 또 그 기준가를 터치하여 수식 조건에 해당되면 또 매매는 할수가 있는데 첫 매매신호에 따라 매매만 하게 해주십시요 다음 기준가 갈때까지 눌림목 마다 매매신호가 나오지 않게 부탁드립니다....감사합니다 input : 기준가(250); var : direction(0),HH(0),LL(0); var1 = 기준가-5.0; var2 = 기준가-2.5; var3 = 기준가; var4 = 기준가+2.5; var5 = 기준가+5.0; if crossup(C,var1) Then { direction = 1; HH = H; } if crossup(C,var2) Then { direction = 2; HH = H; } if crossup(C,var3) Then { direction = 3; HH = H; } if crossup(C,var4) Then { direction = 4; HH = H; } if crossup(C,var5) Then { direction = 5; HH = H; } if CrossDown(C,var1) Then { direction = -1; LL = L; } if CrossDown(C,var2) Then { direction = -2; LL = L; } if CrossDown(C,var3) Then{ direction = -3; LL = L; } if CrossDown(C,var4) Then { direction = -4; LL = L; } if CrossDown(C,var5) Then { direction = -5; LL = L; } if H > HH Then HH = H; if L < LL Then LL = L; if stime >= 090000 and stime < 150000 then{ if direction == 1 and HH >= var1+0.8 Then buy("b1",AtLimit,HH-0.4); if direction == 2 and HH >= var2+0.8 Then buy("b2",AtLimit,HH-0.4); if direction == 3 and HH >= var3+0.8 Then buy("b3",AtLimit,HH-0.4); if direction == 4 and HH >= var4+0.8 Then buy("b4",AtLimit,HH-0.4); if direction == 5 and HH >= var5+0.8 Then buy("b5",AtLimit,HH-0.4); if direction == -1 and LL <= var1-0.8 Then Sell("s1",AtLimit,LL+0.4); if direction == -2 and LL <= var2-0.8 Then Sell("s2",AtLimit,LL+0.4); if direction == -3 and LL <= var3-0.8 Then Sell("s3",AtLimit,LL+0.4); if direction == -4 and LL <= var4-0.8 Then Sell("s4",AtLimit,LL+0.4); if direction == -5 and LL <= var5-0.8 Then Sell("s5",AtLimit,LL+0.4); }