커뮤니티
바쁘신데 수정 좀 부탁드립니다
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);
}