Apologies. I deleted this post in error.
Daniyar Nadyrshin:
Hi:) Please help me with code , need close order in this situation
if (v_kumoBreakoutSignal == 0 )
Here all code
Thank you!
//+------------------------------------------------------------------+ //| T.mq4 | //| Daniyar | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Daniyar" #property link "https://www.mql5.com" #property version "1.00" #property strict extern string ICHIMOKU = "***************************************************"; extern int e_tenkan_sen = 8; extern int e_kijun_sen = 21; extern int e_senkou_span_b = 55; extern int e_Ichimoku_shift = 0; extern int e_breakout_distance = 10; extern string ORDINI = "***************************************************"; extern double e_TakeProfit = 100; extern double e_Stoploss = 25; extern double e_TrailingStop = 35; extern double e_TrailingStep = 5; extern double e_Lots = 0.1; extern int e_MagicID = 23456; double g_Point = 0.0001; int init(){ double Poin; if (Point == 0.00001) Poin = 0.0001; else if (Point == 0.001) Poin = 0.01; else Poin = Point; g_Point = Poin; return(0); } int deinit(){ return(0); } int start(){ int v_total=OrdersTotal(); if(v_total<1) { // no opened orders identified if(AccountFreeMargin()<(1000*e_Lots)){ Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } } else{ int v_i = 0; while (v_i < v_total){ if((OrderSelect(v_i, SELECT_BY_POS, MODE_TRADES)==true) && (OrderMagicNumber() == e_MagicID)){ if (e_TrailingStop > 0){ TrailingStop(); return(0); } } v_i++; } } int v_kumoBreakoutSignal = kumoBreakoutSignal(); int v_ticket; if (v_kumoBreakoutSignal == 1 ){ RefreshRates(); v_ticket=OrderSend(Symbol(), OP_BUY, e_Lots, Ask, 3, Ask - (e_Stoploss*g_Point), Ask + (e_TakeProfit*g_Point), "Kumo Breakout EA", e_MagicID, 0, Green); if(v_ticket>0){ if(OrderSelect(v_ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return(0); } if (v_kumoBreakoutSignal == 2 ){ RefreshRates(); v_ticket=OrderSend(Symbol(), OP_SELL, e_Lots, Bid, 3, Bid + (e_Stoploss*g_Point), Bid - (e_TakeProfit*g_Point), "Kumo Breakout EA", e_MagicID, 0, Red); if(v_ticket>0){ if(OrderSelect(v_ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); return(0); } if (v_kumoBreakoutSignal == 0 ){ RefreshRates(); HepsiniKapat(); } return(0); } int kumoBreakoutSignal(){ int v_kumoBreakout = 0; int i; double v_SENKOUSPANA = iIchimoku(NULL, 0, e_tenkan_sen, e_kijun_sen, e_senkou_span_b, MODE_SENKOUSPANA, e_Ichimoku_shift); double v_SENKOUSPANB = iIchimoku(NULL, 0, e_tenkan_sen, e_kijun_sen, e_senkou_span_b, MODE_SENKOUSPANB, e_Ichimoku_shift); if (Bid > v_SENKOUSPANA && Bid > v_SENKOUSPANB) for(i = 0; i <= e_breakout_distance; i++) if (Low[i] < iIchimoku(NULL, 0, e_tenkan_sen, e_kijun_sen, e_senkou_span_b, MODE_SENKOUSPANA, i) && Low[i] < iIchimoku(NULL, 0, e_tenkan_sen, e_kijun_sen, e_senkou_span_b, MODE_SENKOUSPANB, i)) return (1); //segnale SHORT? if (Bid < v_SENKOUSPANA && Bid < v_SENKOUSPANB) for(i = 0; i <= e_breakout_distance; i++) if (High[i] > iIchimoku(NULL, 0, e_tenkan_sen, e_kijun_sen, e_senkou_span_b, MODE_SENKOUSPANA, i) && High[i] > iIchimoku(NULL, 0, e_tenkan_sen, e_kijun_sen, e_senkou_span_b, MODE_SENKOUSPANB, i)) return (2); return(v_kumoBreakout); } void TrailingStop(){ RefreshRates(); bool rest; if (OrderType() == OP_BUY) if ((Bid - OrderOpenPrice()) > (e_TrailingStop * g_Point)) if (OrderStopLoss() < Bid - (e_TrailingStop + e_TrailingStep - 1) * g_Point) { rest= OrderModify(OrderTicket(), OrderOpenPrice(), Ask - e_TrailingStop * g_Point, OrderTakeProfit(), 0, Green); return; } if (OrderType()==OP_SELL) if ((OrderOpenPrice() - Ask) > (e_TrailingStop * g_Point)) if (OrderStopLoss() > Ask + (e_TrailingStop + e_TrailingStep - 1) * g_Point || OrderStopLoss()==0) { rest= OrderModify(OrderTicket(), OrderOpenPrice(), Ask + e_TrailingStop * g_Point, OrderTakeProfit(), 0, Red); return; } } int HepsiniKapat() { int total = OrdersTotal(); bool rest; for(int i=total-1;i>=0;i--) { rest=OrderSelect(i, SELECT_BY_POS); int type = OrderType(); bool result = false; switch(type) { //Close opened long positions case OP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, CLR_NONE ); break; //Close opened short positions case OP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, CLR_NONE ); break; //Close pending orders case OP_BUYLIMIT : case OP_BUYSTOP : case OP_SELLLIMIT : case OP_SELLSTOP : result = OrderDelete( OrderTicket() ); } if(result == false) { if (GetLastError()>0) Alert("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() ); Sleep(3000); } } return(0); }
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi:) Please help me with code , need close order in this situation
if (v_kumoBreakoutSignal == 0 )
Here all code
Thank you!