// Pin bar trading strategy // Define variables double takeProfit, stopLoss; int magicNumber = 12345; // unique identifier for trades // Identify pin bar pattern if (pinBarPattern) { // Open three orders at 0.01 each for (int i = 0; i < 3; i++) { if (buy) { // Calculate take profit takeProfit = middleCandle + (topLeftCandle - bottomLeftCandle); // Set stop loss at bottom of middle candle stopLoss = bottomMiddleCandle; // Place buy order OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, stopLoss, takeProfit, "Pin bar strategy", magicNumber, 0, Green); } else if (sell) { // Calculate take profit takeProfit = middleCandle - (topLeftCandle - bottomLeftCandle); // Set stop loss at top of middle candle stopLoss = topMiddleCandle; // Place sell order OrderSend(Symbol(), OP_SELL, 0.01, Bid, 3, stopLoss, takeProfit, "Pin bar strategy", magicNumber, 0, Red); } } // Check for profit if (OrderProfit() >= takeProfit * 0.5) { // Close two trades and shift stop loss to original level for (int i = 0; i < 2; i++) { OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 2); OrderModify(OrderTicket(), OrderOpenPrice(), stopLoss, takeProfit, 0, Green); } } if (OrderProfit() >= takeProfit) { // Close third trade OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 2); } }