'Any way to make these Boolean options more elegant in pine?
I have written a big IF block to let users define the settings the strategy uses for orders. It consists of three rules for trend definition and four rules to pick the entry.
FHEQ = input.bool(defval=false, title="Equator check?", group='Trend')
FHMA = input.bool(defval=false, title="4H ACC > 4H CR?", group='Trend')
var bool longConditionTrend = na
if FHTL and FHEQ and FHMA
longConditionTrend := FHCheckTL and FHCheckMA and PhaseCheckBull
else if FHTL
longConditionTrend := FHCheckTL
else if FHEQ
longConditionTrend := PhaseCheckBull
else if FHMA
longConditionTrend := FHCheckMA
else if FHTL and FHEQ
longConditionTrend := FHCheckTL and PhaseCheckBull
else if FHTL and FHMA
longConditionTrend := FHCheckTL and FHCheckMA
else if FHMA and FHEQ
longConditionTrend := FHCheckMA and PhaseCheckBull
else
longConditionTrend := na
plotshape(longConditionTrend, color=color.new(color.green, 0), style=shape.arrowup, size=size.normal, location=location.bottom, title='PlotsTrendConditions')
//////////////////////////////////////////////////////////////
///////////////////////Entry Conditions//////////////////////
FHACC = input.bool(defval=false, title="Close > FACC?", group='Entry')
FHCR = input.bool(defval=false, title="Close > FCR?", group='Entry')
FHPB = input.bool(defval=false, title='4H Pinball?', group='Entry')
OHPB = input.bool(defval=false, title="1H Pinball?", group='Entry')
var bool longConditionEntry = na
if FHACC and FHCR and OHPB and FHPB
longConditionEntry := FHSignalACC and FHSignalCR and OHSignalTLB and FHSignalTLB
else if FHACC and FHCR and OHPB
longConditionEntry := FHSignalACC and FHSignalCR and OHSignalTLB
else if FHACC and FHCR and FHPB
longConditionEntry := FHSignalACC and FHSignalCR and FHSignalTLB
else if FHACC and OHPB and FHPB
longConditionEntry := FHSignalACC and OHSignalTLB and FHSignalTLB
else if FHACC and OHPB
longConditionEntry := FHSignalACC and OHSignalTLB
else if FHACC and FHCR
longConditionEntry := FHSignalACC and FHSignalCR
else if FHACC and FHPB
longConditionEntry := FHSignalACC and FHSignalTLB
else if FHCR and OHPB and FHPB
longConditionEntry := FHSignalCR and OHSignalTLB and FHSignalTLB
else if FHCR and OHPB
longConditionEntry := FHSignalCR and OHSignalTLB
else if FHCR and FHPB
longConditionEntry := FHSignalCR and FHSignalTLB
else if FHPB and OHPB
longConditionEntry := FHSignalTLB and OHSignalTLB
else if OHPB
longConditionEntry := OHCheckTLB
else if FHACC
longConditionEntry := FHSignalACC
else if FHCR
longConditionEntry := FHSignalCR
else if FHPB
longConditionEntry := FHCheckTL
else
longConditionEntry := na
plotshape(longConditionEntry, color=color.new(color.green, 0), style=shape.arrowup, size=size.normal, location=location.top, title='PlotsEntryConditions')
LongCondition = longConditionEntry and longConditionTrend
if strategy.position_size > 0
LongCondition := na
I have tried to write every possible combination in the IF blocks but this gets me very big blocks. I was wondering if there is a more efficient way to do this?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
