#include #include CTrade trade; CiIchimoku ichimoku; // Create an instance of the CIIchimoku class // User Input input ENUM_TIMEFRAMES Timeframe = PERIOD_CURRENT; input ulong InpMagic = 8234; input double RiskPercent = 2; // Boolean Conditions bool FutureCloudGreen = false, FutureCloudRed = false; bool PriceaboveCloud = false, PricebelowCloud = false; bool TenkanaboveKijun = false, TenkanbelowKijun = false; bool ChikouaboveCloud = false, ChikoubelowCloud = false; int OnInit() { trade.SetExpertMagicNumber(InpMagic); ichimoku = new CiIchimoku(); ichimoku.Create(_Symbol, Timeframe, 9, 26, 52); return INIT_SUCCEEDED; } void OnDeinit(const int reason) { } void OnTick() { if (!IsNewBar()) return; ichimoku.Refresh(-1); double SpanAx1 = ichimoku.SenkouSpanA(1); double SpanAx2 = ichimoku.SenkouSpanA(2); double SpanAx26 = ichimoku.SenkouSpanA(26); double SpanAf26 = ichimoku.SenkouSpanA(-26); double SpanBx1 = ichimoku.SenkouSpanB(1); double SpanBx2 = ichimoku.SenkouSpanB(2); double SpanBx26 = ichimoku.SenkouSpanB(26); double SpanBf26 = ichimoku.SenkouSpanB(-26); double Tenkan = ichimoku.TenkanSen(1); double Kijun = ichimoku.KijunSen(1); double Chikou = ichimoku.ChinkouSpan(26); double Closex1 = iClose(_Symbol, Timeframe, 1); double Closex2 = iClose(_Symbol, Timeframe, 2); // Checking Conditions // Future Cloud is Green or Red if (SpanAf26 > SpanBf26) { FutureCloudGreen = true; FutureCloudRed = false; } else if (SpanBf26 > SpanAf26) { FutureCloudRed = true; FutureCloudGreen = false; } // Exit Cloud Up OR Exit Cloud Below if (PriceaboveCloud == false && (Closex2 < SpanAx2 || Closex2 < SpanBx2) && (Closex1 > SpanAx1 && Closex1 > SpanBx1)) { PriceaboveCloud = true; PricebelowCloud = false; } else if (PricebelowCloud == false && (Closex2 > SpanAx2 || Closex2 > SpanBx2) && (Closex1 < SpanAx1 && Closex1 < SpanBx1)) { PricebelowCloud = true; PriceaboveCloud = false; } // Tenkan above Kijun or Tenkan below Kijun if (Tenkan > Kijun) { TenkanaboveKijun = true; TenkanbelowKijun = false; } else if (Tenkan < Kijun) { TenkanaboveKijun = false; TenkanbelowKijun = true; } // Chikou above or below Cloud 26 bars back if (Chikou > SpanAx26 && Chikou > SpanBx26) { ChikouaboveCloud = true; ChikoubelowCloud = false; } else if (Chikou < SpanAx26 && Chikou < SpanBx26) { ChikouaboveCloud = false; ChikoubelowCloud = true; } // Close of price is in the Cloud if (SpanAx1 > SpanBx1 && Closex1 > SpanBx1 && Closex1 < SpanAx1) { PriceaboveCloud = false; PricebelowCloud = false; } else if (SpanBx1 > SpanAx1 && Closex1 > SpanAx1 && Closex1 < SpanBx1) { PriceaboveCloud = false; PricebelowCloud = false; } // Chikou is in the Cloud if (SpanAx26 > SpanBx26 && Chikou > SpanBx26 && Chikou < SpanAx26) { ChikouaboveCloud = false; ChikoubelowCloud = false; } else if (SpanBx26 > SpanAx26 && Chikou > SpanAx26 && Chikou < SpanBx26) { ChikouaboveCloud = false; ChikoubelowCloud = false; } Comment("In PriceaboveCloud: ", PriceaboveCloud, "\nTenkan>Kijun: ", TenkanaboveKijun, "\nChikouaboveCloud: ", ChikouaboveCloud, "\nFutureCloudGreen: ", FutureCloudGreen, "\n\n", "\nPricebelowCloud: ", PricebelowCloud, "\nTenkan