// Downloaded From https://www.WiseStockTrader.com function ChandelierCl(AtrARRAY, AtrMult) { // Skip empty values i = 0; do { result[i] = Null; i++; } while( i < BarCount AND (IsNull(O[i]) OR IsNull(H[i]) OR IsNull(L[i]) OR IsNull(C[i]) ) ); First = i; if (i < BarCount - 1) { HHC[First] = C[First]; LLC[First] = C[First]; if (C[First + 1] > HHC[First]) { HHC[First + 1] = C[First + 1]; LLC[First + 1] = LLC[First]; result[First] = C[First] - AtrMult * AtrARRAY[First]; iTrade = "LT"; } else { if (C[First + 1] < LLC[First]) { HHC[First = 1] = HHC[First]; LLC[First + 1] = LLC[First + 1]; result[First] = C[First] + AtrMult * AtrARRAY[First]; iTrade = "ST"; } else { HHC[First + 1] = C[First + 1]; LLC[First + 1] = C[First + 1]; result[First] = C[First] - AtrMult * AtrARRAY[First]; iTrade = "LT"; } } for( i = First; i < BarCount; i++ ) { if (iTrade == "LT") { if (C[i] >= result[i-1]) { // Long Trade is continuing if (C[i] > C[i-1]) { HHC[i] = C[i]; } else { HHC[i] = HHC[i-1]; } result[i] = HHC[i] - AtrMult * AtrARRAY[i]; if (result[i] < result[i-1]) { result[i] = result[i-1]; } } else { // Long trade Exit triggered iTrade = "ST"; LLC[i] = C[i]; result[i] = C[i] + AtrMult * AtrARRAY[i]; } } else { // Short trade if (C[i] <= result[i-1]) { if (C[i] <= C[i-1]) { // Short Trade is continuing LLC[i] = C[i]; } else { LLC[i] = LLC[i-1]; } result[i] = LLC[i] + AtrMult * AtrARRAY[i]; if (result[i] > result[i-1]) { result[i] = result[i-1]; } } else { //Short Trade Exit is triggered iTrade = "LT"; HHC[i] = C[i]; result[i] = C[i] - AtrMult * AtrARRAY[i]; } } } } return result; } function ChandelierHL(AtrARRAY, AtrMult) { // Skip empty values i = 0; do { result[i] = Null; i++; } while( i < BarCount AND (IsNull(O[i]) OR IsNull(H[i]) OR IsNull(L[i]) OR IsNull(C[i]) ) ); First = i; if (i < BarCount - 1) { HHC[First] = H[First]; LLC[First] = L[First]; if (H[First + 1] > HHC[First]) { HHC[First + 1] = H[First + 1]; LLC[First + 1] = LLC[First]; result[First] = H[First] - AtrMult * AtrARRAY[First]; iTrade = "LT"; } else { if (L[First + 1] < LLC[First]) { HHC[First = 1] = HHC[First]; LLC[First + 1] = LLC[First + 1]; result[First] = L[First] + AtrMult * AtrARRAY[First]; iTrade = "ST"; } else { HHC[First + 1] = C[First + 1]; LLC[First + 1] = C[First + 1]; result[First] = H[First] - AtrMult * AtrARRAY[First]; iTrade = "LT"; } } for( i = First; i < BarCount; i++ ) { if (iTrade == "LT") { if (C[i] >= result[i-1]) { // Long Trade is continuing if (H[i] > H[i-1]) { HHC[i] = H[i]; } else { HHC[i] = HHC[i-1]; } result[i] = HHC[i] - AtrMult * AtrARRAY[i]; if (result[i] < result[i-1]) { result[i] = result[i-1]; } } else { // Long trade Exit triggered iTrade = "ST"; LLC[i] = L[i]; result[i] = L[i] + AtrMult * AtrARRAY[i]; } } else { // Short trade if (C[i] <= result[i-1]) { if (L[i] <= L[i-1]) { // Short Trade is continuing LLC[i] = L[i]; } else { LLC[i] = LLC[i-1]; } result[i] = LLC[i] + AtrMult * AtrARRAY[i]; if (result[i] > result[i-1]) { result[i] = result[i-1]; } } else { //Short Trade Exit is triggered iTrade = "LT"; HHC[i] = H[i]; result[i] = H[i] - AtrMult * AtrARRAY[i]; } } } } return result; }