답변완료
문의드립니다.
var : 손청1(30),손청2(45),손청3(60);
if MarketPosition == 1 Then
{
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "B_손청1" Then
Condition1 = true;
if LatestExitName(0) == "B_손청2" Then
Condition2 = true;
if LatestExitName(0) == "B_손청3" Then
Condition3 = true;
}
if Condition1 == False and MarketPosition == 1 Then
ExitLong("B_손청1",AtStop,EntryPrice-PriceScale*손청1,"",1,1);
if Condition2 == False and MarketPosition == 1 Then
ExitLong("B_손청2",AtStop,EntryPrice-PriceScale*손청2,"",1,1);
if Condition3 == False and MarketPosition == 1 Then
ExitLong("B_손청3",AtStop,EntryPrice-PriceScale*손청3,"",1,1);
}
Else
{
Condition1 = False;
Condition2 = False;
Condition3 = False;
}
if MarketPosition == -1 Then
{
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "S_손청1" Then
Condition11 = true;
if LatestExitName(0) == "S_손청2" Then
Condition22 = true;
if LatestExitName(0) == "S_손청3" Then
Condition33 = true;
}
if Condition11 == False and MarketPosition == -1 Then
ExitShort("S_손청1",AtStop,EntryPrice+PriceScale*손청1,"",1,1);
if Condition22 == False and MarketPosition == -1 Then
ExitShort("S_손청2",AtStop,EntryPrice+PriceScale*손청2,"",1,1);
if Condition33 == False and MarketPosition == -1 Then
ExitShort("S_손청3",AtStop,EntryPrice+PriceScale*손청3,"",1,1);
}
Else
{
Condition11 = False;
Condition22 = False;
Condition33 = False;
}
수고많으십니다.
이전부터 계속 문의드렸던 내용인데
해보니 잘 적용이 안되서 다시 문의드립니다.
예를들어 "B_손청2"이 1번 나오고 나서도 45틱 이라는 조건을 다시 충족시키면 "B_손청2"이 다시 나옵니다.
1개의 매매신호 발생 후 어떠한 경우도 1번 작동한 청산식은 두번 다시 조건이 만족해도 나오지 않게 하는 수식을 알고 싶습니다.
그리고 다계약에서 특정 조건 이를테면 20선과 60선이 골든/데드되면 전량 청산하는 식도 부탁드립니다.
그럼 미리 노고에 감사드립니다~
2024-12-22
658
글번호 186485
시스템
답변완료
변환 부탁드립니다
//@version=4
strategy(title="VWAP + Fibo Dev Extensions Strategy", overlay=true, pyramiding=5, commission_value=0.08)
// -------------------------------------
// ------- Inputs Fibos Values ---------
// -------------------------------------
fib1 = input(title="Fibo extension 1", type=input.float, defval=1.618)
fib2 = input(title="Fibo extension 2", type=input.float, defval=2.618)
reso = input(title="Resolution VWAP", type=input.resolution, defval="W")
dev = input(title="Deviation value min.", type=input.integer, defval=150)
// -------------------------------------
// -------- VWAP Calculations ----------
// -------------------------------------
t = time(reso)
debut = na(t[1]) or t > t[1]
addsource = hlc3 * volume
addvol = volume
addsource := debut ? addsource : addsource + addsource[1]
addvol := debut ? addvol : addvol + addvol[1]
VWAP = addsource / addvol
sn = 0.0
sn := debut ? sn : sn[1] + volume * (hlc3 - VWAP[1]) * (hlc3 - VWAP)
sd = sqrt(sn / addvol)
Fibp2 = VWAP + fib2 * sd
Fibp1 = VWAP + fib1 * sd
Fibm1 = VWAP - fib1 * sd
Fibm2 = VWAP - fib2 * sd
// -------------------------------------
// -------------- Plots ----------------
// -------------------------------------
plot(VWAP, title="VWAP", color=color.orange)
pFibp2 = plot(Fibp2, color=color.red)
pFibp1 = plot(Fibp1, color=color.red)
pFibm1 = plot(Fibm1, color=color.lime)
pFibm2 = plot(Fibm2, color=color.lime)
fill(pFibp2,pFibp1, color.red)
fill(pFibm2,pFibm1, color.lime)
// -------------------------------------
// ------------ Positions --------------
// -------------------------------------
bull = crossunder(low[1],Fibm1[1]) and low[1]>=Fibm2[1] and low>Fibm2 and low<Fibm1 and sd>dev
bear = crossover(high[1],Fibp1[1]) and high[1]<=Fibp2[1] and high<Fibp2 and high>Fibp1 and sd>dev
//plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0)
//plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0)
// -------------------------------------
// --------- Strategy Orders -----------
// -------------------------------------
strategy.entry("Long", true, when = bull)
strategy.close("Long", when = crossover(high,VWAP) or crossunder(low,Fibm2))
strategy.entry("Short", false, when = bear)
strategy.close("Short", when = crossunder(low,VWAP) or crossover(high,Fibp2))
2024-12-21
729
글번호 186483
지표