Disliked{quote} here you go....you should be careful with recalculations of this indi .... {file} {image}Ignored
Attached File(s)
candlestick_3.mq4
15 KB
|
337 downloads
I will code your pivot EAs for no charge 24 replies
I will code your scalping EAs for no charge 163 replies
Oanda MT4 - Indicators and EAs not showing 2 replies
EAs and indicators relating to moutaki... 22 replies
InterbankFX has loaded its MT4 platform with custom EAs, indicators and scripts 1 reply
Disliked{quote} here you go....you should be careful with recalculations of this indi .... {file} {image}Ignored
DislikedCan someone please update this indicator to the latest MQL4 BUILD (OnInit(),OnCalculate()) . ''Old, incompatible indicators include the functions init() and start(), whereas new indicators include the functions OnInit()and OnCalculate()'' Thank you. {file}Ignored
DislikedHelp! I am currently using a custom MACD MT4 indicator that I purchased. I would like to use it on Forex Tester to practice my strategy. I am aware that in order to do this, I must convert the custom indicator from mql to .dll format. However, I lack the technical know how to achieve this. Are there any coders who can help me? The owner of this indicator was kind enough to share the source code of the indicator with me. I don't want to upload it to the thread but if there is anyone out there willing to help me, I will email the indicator to you....Ignored
Disliked{quote} Here You go....you should be careful with recalculations of this indi .... {file} {image}Ignored
Disliked{quote} You probably do not just understand because I do not exactly express my idea. I took your upper screen and painted it. The red and green lines according to the nature of the motion should be symmetrical in relation to the level of 100. And now this is not true. Reds in priority . They can cross the level from the bottom up. And the green ones on the contrary can not. Maybe this time I clearly explained? {image}Ignored
//--- input parameters input int bands_period= 20; // Bollinger Bands period input int dema_period= 20; // DEMA period input int bands_shift = 0; // Bollinger Bands shift input double deviation= 2; // Standard deviation input double Lot=0.5; // Lots to trade //--- global variables int BolBandsHandle; // Bolinger Bands handle int demaHandle; // DEMA handle double BBUp[],BBLow[],BBMidle[]; // dynamic arrays for numerical values of Bollinger Bands double demaVal[]; // dynamic array for numerical values of Moving Average //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Do we have sufficient bars to work if(Bars(_Symbol,_Period)<60) // total number of bars is less than 60? { Alert("We have less than 60 bars on the chart, an Expert Advisor terminated!!"); return(-1); } //--- get handle of the Bollinger Bands and DEMA indicators BolBandsHandle=iBands(NULL,PERIOD_M30,bands_period,bands_shift,deviation,PRICE_CLOSE); demaHandle=iDEMA(NULL,PERIOD_D1,dema_period,0,PRICE_CLOSE); //--- Check for Invalid Handle if((BolBandsHandle<0) || (demaHandle<0)) { Alert("Error in creation of indicators - error: ",GetLastError(),"!!"); return(-1); } return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- release indicator handles IndicatorRelease(BolBandsHandle); IndicatorRelease(demaHandle); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- we will use the static Old_Time variable to serve the bar time. //--- at each OnTick execution we will check the current bar time with the saved one. //--- if the bar time isn't equal to the saved time, it indicates that we have a new tick. static datetime Old_Time; datetime New_Time[1]; bool IsNewBar=false; //--- copying the last bar time to the element New_Time[0] int copied=CopyTime(_Symbol,_Period,0,1,New_Time); if(copied>0) // ok, the data has been copied successfully { if(Old_Time!=New_Time[0]) // if old time isn't equal to new bar time { IsNewBar=true; // if it isn't a first call, the new bar has appeared if(MQL5InfoInteger(MQL5_DEBUGGING)) Print("We have new bar here ",New_Time[0]," old time was ",Old_Time); Old_Time=New_Time[0]; // saving bar time } } else { Alert("Error in copying historical times data, error =",GetLastError()); ResetLastError(); return; } //--- EA should only check for new trade if we have a new bar if(IsNewBar==false) { return; } //--- do we have enough bars to work with int Mybars=Bars(_Symbol,_Period); if(Mybars<60) // if total bars is less than 60 bars { Alert("We have less than 60 bars, EA will now exit!!"); return; } MqlRates mrate[]; // To be used to store the prices, volumes and spread of each bar /* Let's make sure our arrays values for the Rates and Indicators is stored serially similar to the timeseries array */ // the rates arrays ArraySetAsSeries(mrate,true); ArraySetAsSeries(demaVal,true); // the indicator arrays ArraySetAsSeries(BBUp,true); ArraySetAsSeries(BBLow,true); ArraySetAsSeries(BBMidle,true); //--- Get the details of the latest 3 bars if(CopyRates(_Symbol,_Period,0,3,mrate)<0) { Alert("Error copying rates/history data - error:",GetLastError(),"!!"); return; } //--- Copy the new values of our indicators to buffers (arrays) using the handle if(CopyBuffer(BolBandsHandle,0,0,3,BBMidle)<0 || CopyBuffer(BolBandsHandle,1,0,3,BBUp)<0 || CopyBuffer(BolBandsHandle,2,0,3,BBLow)<0) { Alert("Error copying Bollinger Bands indicator Buffers - error:",GetLastError(),"!!"); return; } if(CopyBuffer(demaHandle,0,0,3,demaVal)<0) { Alert("Error copying DEMA indicator buffer - error:",GetLastError()); return; } double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); // Ask price double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); // Bid price //--- Declare bool type variables to hold our Buy and Sell Conditions bool Buy_Condition =(mrate[1].close > BBLow[1] && mrate[1].open < BBLow[1] && // White (bull) candle crossed the Lower Band from below to above demaVal[0]>demaVal[1] && demaVal[1]>demaVal[2]); // and DEMA is growing up bool Sell_Condition = (mrate[1].close < BBUp[1] && mrate[1].open > BBUp[1] && // Black (bear) candle crossed the Upper Band from above to below demaVal[0]<demaVal[1] && demaVal[1]<demaVal[2]); // and DEMA is falling down bool Buy_Close=(mrate[1].close<BBUp[1] && mrate[1].open>BBUp[1]); // Black candle crossed the Upper Band from above to below bool Sell_Close=(mrate[1].close>BBLow[1] && mrate[1].open<BBLow[1]); // White candle crossed the Lower Band from below to above if(Buy_Condition && !PositionSelect(_Symbol)) // Open long position { // DEÌÀ is growing up LongPositionOpen(); // and white candle crossed the Lower Band from below to above } if(Sell_Condition && !PositionSelect(_Symbol)) // Open short position { // DEÌÀ is falling down ShortPositionOpen(); // and Black candle crossed the Upper Band from above to below } if(Buy_Close && PositionSelect(_Symbol)) // Close long position { // Black candle crossed the Upper Band from above to below LongPositionClose(); } if(Sell_Close && PositionSelect(_Symbol)) // Close short position { // White candle crossed the Lower Band from below to above ShortPositionClose(); } return; } //+------------------------------------------------------------------+ //| Open Long position | //+------------------------------------------------------------------+ void LongPositionOpen() { MqlTradeRequest mrequest; // Will be used for trade requests MqlTradeResult mresult; // Will be used for results of trade requests ZeroMemory(mrequest); ZeroMemory(mresult); double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); // Ask price double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); // Bid price if(!PositionSelect(_Symbol)) { mrequest.action = TRADE_ACTION_DEAL; // Immediate order execution mrequest.price = NormalizeDouble(Ask,_Digits); // Lastest Ask price mrequest.sl = 0; // Stop Loss mrequest.tp = 0; // Take Profit mrequest.symbol = _Symbol; // Symbol mrequest.volume = Lot; // Number of lots to trade mrequest.magic = 0; // Magic Number mrequest.type = ORDER_TYPE_BUY; // Buy Order mrequest.type_filling = ORDER_FILLING_FOK; // Order execution type mrequest.deviation=5; // Deviation from current price OrderSend(mrequest,mresult); // Send order } } //+------------------------------------------------------------------+ //| Open Short position | //+------------------------------------------------------------------+ void ShortPositionOpen() { MqlTradeRequest mrequest; // Will be used for trade requests MqlTradeResult mresult; // Will be used for results of trade requests ZeroMemory(mrequest); ZeroMemory(mresult); double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); // Ask price double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); // Bid price if(!PositionSelect(_Symbol)) { mrequest.action = TRADE_ACTION_DEAL; // Immediate order execution mrequest.price = NormalizeDouble(Bid,_Digits); // Lastest Bid price mrequest.sl = 0; // Stop Loss mrequest.tp = 0; // Take Profit mrequest.symbol = _Symbol; // Symbol mrequest.volume = Lot; // Number of lots to trade mrequest.magic = 0; // Magic Number mrequest.type= ORDER_TYPE_SELL; // Sell order mrequest.type_filling = ORDER_FILLING_FOK; // Order execution type mrequest.deviation=5; // Deviation from current price OrderSend(mrequest,mresult); // Send order } } //+------------------------------------------------------------------+ //| Close Long position | //+------------------------------------------------------------------+ void LongPositionClose() { MqlTradeRequest mrequest; // Will be used for trade requests MqlTradeResult mresult; // Will be used for results of trade requests ZeroMemory(mrequest); ZeroMemory(mresult); double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); // Ask price double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); // Bid price if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { mrequest.action = TRADE_ACTION_DEAL; // Immediate order execution mrequest.price = NormalizeDouble(Bid,_Digits); // Lastest Bid price mrequest.sl = 0; // Stop Loss mrequest.tp = 0; // Take Profit mrequest.symbol = _Symbol; // Symbol mrequest.volume = Lot; // Number of lots to trade mrequest.magic = 0; // Magic Number mrequest.type= ORDER_TYPE_SELL; // Sell order mrequest.type_filling = ORDER_FILLING_FOK; // Order execution type mrequest.deviation=5; // Deviation from current price OrderSend(mrequest,mresult); // Send order } } //+------------------------------------------------------------------+ //| Close Short position | //+------------------------------------------------------------------+ void ShortPositionClose() { MqlTradeRequest mrequest; // Will be used for trade requests MqlTradeResult mresult; // Will be used for results of trade requests ZeroMemory(mrequest); ZeroMemory(mresult); double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); // Ask price double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); // Bid price if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { mrequest.action = TRADE_ACTION_DEAL; // Immediate order execution mrequest.price = NormalizeDouble(Ask,_Digits); // Latest ask price mrequest.sl = 0; // Stop Loss mrequest.tp = 0; // Take Profit mrequest.symbol = _Symbol; // Symbol mrequest.volume = Lot; // Number of lots to trade mrequest.magic = 0; // Magic Number mrequest.type = ORDER_TYPE_BUY; // Buy order mrequest.type_filling = ORDER_FILLING_FOK; // Order execution type mrequest.deviation=5; // Deviation from current price OrderSend(mrequest,mresult); // Send order } } //+------------------------------------------------------------------+
Dislikedplease convert the following expert from mql5 to mql4 //--- input parameters input int bands_period= 20; // Bollinger Bands period input int dema_period= 20; // DEMA period input int bands_shift = 0; // Bollinger Bands shift input double deviation= 2; // Standard deviation input double Lot=0.5; // Lots to trade //--- global variables int BolBandsHandle; // Bolinger Bands handle int demaHandle; // DEMA handle double BBUp[],BBLow[],BBMidle[]; // dynamic arrays for numerical values of Bollinger Bands double demaVal[]; // dynamic array for numerical...Ignored
DislikedCan someone fix this indicator to draw fibonacci line into each arrays please? {file}Ignored
Dislikedwant one help.. how to code this ... suppose low 4259 means need to make this to single digit like 4+2+5+9 = 20 = 2+0=2 and final ans will be 2 so how to do this please any oneIgnored
Disliked{quote} any one please help the given low or high will be convert to single digit.. for this how to code thisIgnored
DislikedThis is an oscillator indicator.Problem is, it does not plot in real-time. I have to keep reloading the indicator in order to see its true position relative to zero level. Can you fix it? {file}Ignored
Dislikedcan anyone tell me how to check a indicator if it repaints or not , how to know that ?Ignored