Forex
Google
New signals service!

Go Back   Forex Trading > Metatrader Training > Metatrader 4 mql 4 - Development course > Questions


Register in Forex TSD!
Trading Systems Leaders in this forum (automated trading systems) are winning more than 3000 pips in a month (30000$ investing one lot every time).
Click here to register and get more information

Reply
 
LinkBack Thread Tools Display Modes
  #21 (permalink)  
Old 11-21-2007, 04:09 AM
wolfe's Avatar
Senior Member
 
Join Date: Jan 2006
Posts: 681
wolfe is on a distinguished road
Question about writing an iCustom()

When writing an iCustom indicator, can you call another iCustom indi from within an iCustom?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #22 (permalink)  
Old 12-03-2007, 05:59 PM
Junior Member
 
Join Date: May 2007
Posts: 16
cyberpasta is on a distinguished road
Quote:
Originally Posted by tiger_wong View Post
Hello,
I notice that you want to use BBStop as your indicator in the EA.
From my experience, the syntax should be

Trend = iCustom(NULL,0, "BBands_Stop_v1", Length, Deviation, MoneyRisk, 1, 1);

while Trend > 0 it was downtrend (bearish)
while Trend < 0 it was uptrend (bullish)

hope this can help.
Hi!! Also I use BBands stop but I've modified it. I've written an EA that call this indicators but it's dosen't work fine. The modified BBands draw an histogram and I want that while the histogram is green buy is enable and viceversa. here is the code that I've writeen to open position. Attaced is the code of BBands modified. Any help?

PHP Code:
double Trend iCustom(NULL,0"BBands-1"202101);
double Trend1 iCustom(NULL,0"BBands-1"202111);

if (
Trend 0){buy=1;sell=0;}
if (
Trend10) {buy=0;sell=1;}


      if(
TimeDayOfYear(TimeCurrent())!=DayOfLastBuyTrade && Ask==buystart && buy==1){
         
ticket=OrderSend(Symbol(),OP_BUY,getLotSize(),buystart,2,buystart-sl,buystart+tp,"EA4",MagicNumber,0,CLR_NONE);     
        
DayOfLastBuyTrade=TimeDayOfYear(TimeCurrent());
        if(
ticket 0)
         {
           if(
OrderSelect(ticketSELECT_BY_TICKETMODE_TRADES)) {
               Print(
"BUY order opened : "OrderOpenPrice());
               if (
SignalAlert){Alert("EA4 Opened Buy on ",Symbol()," at ",OrderOpenPrice());}}
         }
       else 
           Print(
"Error opening BUY order : "GetLastError()); 
          }
      
     
      
      else if(
TimeDayOfYear(TimeCurrent())!=DayOfLastSellTrade && Bid==sellstart &&  sell==1){
         
ticket=OrderSend(Symbol(),OP_SELL,getLotSize(),sellstart,2,sellstart+sl,sellstart-tp,"EA4",MagicNumber,0,CLR_NONE);
         
DayOfLastSellTrade=TimeDayOfYear(TimeCurrent());
         if(
ticket 0)
         {
           if(
OrderSelect(ticketSELECT_BY_TICKETMODE_TRADES)){ 
               Print(
"SELL order opened : "OrderOpenPrice());
               if (
SignalAlert){Alert("EA4 Opened Sell on ",Symbol()," at ",OrderOpenPrice());}}
         }
       else 
           Print(
"Error opening SELL order : "GetLastError()); 
          } 
Code of BBANDS-MOdified:
PHP Code:
//+------------------------------------------------------------------+
//|                                                     BBands--.mq4 |
//|                                                                  |
//|                    
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007."
#property link      "http://www.website.com"

#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Green
#property indicator_color4 Red
#property indicator_color5 Green
#property indicator_color6 Red
//---- input parameters
 
extern int    Length=20;      // Bollinger Bands Period
double    Deviation=2;    // Deviation was 2
double MoneyRisk=1.00// Offset Factor
int    Signal=1;       // Display signals mode: 1-Signals & Stops; 0-only Stops; 2-only Signals;
int    Line=1;         // Display line mode: 0-no,1-yes  
int    Nbars=2000;
//---- indicator buffers
double UpTrendBuffer[];
double DownTrendBuffer[];
double UpTrendSignal[];
double DownTrendSignal[];
double UpTrendLine[];
double DownTrendLine[];
extern bool SoundON=true;
bool TurnedUp false;
bool TurnedDown false;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
  
int init()
  {
  
   
string short_name;
//---- indicator line
   
   
SetIndexBuffer(0,UpTrendBuffer);
   
SetIndexBuffer(1,DownTrendBuffer);
   
SetIndexBuffer(2,UpTrendSignal);
   
SetIndexBuffer(3,DownTrendSignal);
   
SetIndexBuffer(4,UpTrendLine);
   
SetIndexBuffer(5,DownTrendLine);
   
SetIndexStyle(0,DRAW_NONE,0,1);
   
SetIndexStyle(1,DRAW_NONE,0,1);
   
SetIndexStyle(2,DRAW_NONE,0,1);
   
SetIndexStyle(3,DRAW_NONE,0,1);
   
SetIndexStyle(4,DRAW_HISTOGRAM,1,4);
   
SetIndexStyle(5,DRAW_HISTOGRAM,1,4);
   
SetIndexArrow(0,159);
   
SetIndexArrow(1,159);
   
SetIndexArrow(2,108);
   
SetIndexArrow(3,108);
   
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- name for DataWindow and indicator subwindow label
   
short_name="BBands-1";
   
IndicatorShortName(short_name);
   
SetIndexLabel(0,"UpTrend Stop");
   
SetIndexLabel(1,"DownTrend Stop");
   
SetIndexLabel(2,"UpTrend Signal");
   
SetIndexLabel(3,"DownTrend Signal");
   
SetIndexLabel(4,"UpTrend Line");
   
SetIndexLabel(5,"DownTrend Line");
//----
   
SetIndexDrawBegin(0,Length);
   
SetIndexDrawBegin(1,Length);
   
SetIndexDrawBegin(2,Length);
   
SetIndexDrawBegin(3,Length);
   
SetIndexDrawBegin(4,Length);
   
SetIndexDrawBegin(5,Length);
//----
   
return(0);
  }

int start()
  {
 
   
int    i,shift,trend;
   
double smax[25000],smin[25000],bsmax[25000],bsmin[25000];
   
   for (
shift=Nbars;shift>=0;shift--)
   {
   
UpTrendBuffer[shift]=0;
   
DownTrendBuffer[shift]=0;
   
UpTrendSignal[shift]=0;
   
DownTrendSignal[shift]=0;
   
UpTrendLine[shift]=EMPTY_VALUE;
   
DownTrendLine[shift]=EMPTY_VALUE;
   }
   
   for (
shift=Nbars-Length-1;shift>=0;shift--)
   {    
     
smax[shift]=iBands(NULL,0,Length,Deviation,0,PRICE_CLOSE,MODE_UPPER,shift);
      
smin[shift]=iBands(NULL,0,Length,Deviation,0,PRICE_CLOSE,MODE_LOWER,shift);
    
      if (
High[shift]>=smax[shift]) {trend=1;} 
      if (
Low[shift]<=smin[shift]) {trend=-1;}
             
      
            
      
bsmax[shift]=smax[shift];
      
bsmin[shift]=smin[shift];
      if (
trend>0
      {
         if (
Signal>&& UpTrendBuffer[shift]==-1.0)
         {
         
UpTrendSignal[shift]=bsmin[shift];
         
UpTrendBuffer[shift]=bsmin[shift];
         if(
Line>0UpTrendLine[shift]=bsmin[shift];
     if (
SoundON==true && shift==&& !TurnedUp)
         {
     
Alert("BBands-1 going Up on ",Symbol(),"-",Period());
                       
TurnedUp true;
            
TurnedDown false;
     }
         }
         else
         {
         
UpTrendBuffer[shift]=bsmin[shift];
         if(
Line>0UpTrendLine[shift]=bsmin[shift];
         
UpTrendSignal[shift]=-1;
         }
      if (
Signal==2UpTrendBuffer[shift]=0;   
      
DownTrendSignal[shift]=-1;
      
DownTrendBuffer[shift]=-1.0;
      
DownTrendLine[shift]=EMPTY_VALUE;
      }
      if (
trend<0
      {
      if (
Signal>&& DownTrendBuffer[shift]==-1.0)
         {
         
DownTrendSignal[shift]=bsmax[shift];
         
DownTrendBuffer[shift]=bsmax[shift];
         if(
Line>0DownTrendLine[shift]=bsmax[shift];
     if (
SoundON==true && shift==&& !TurnedDown)
         {
     
Alert("BBands going Down on ",Symbol(),"-",Period());
            
TurnedDown true;
            
TurnedUp false;
     }
         }
         else
         {
         
DownTrendBuffer[shift]=bsmax[shift];
         if(
Line>0)DownTrendLine[shift]=bsmax[shift];
         
DownTrendSignal[shift]=-1;
         }
      if (
Signal==2DownTrendBuffer[shift]=0;    
      
UpTrendSignal[shift]=-1;
      
UpTrendBuffer[shift]=-1.0;
      
UpTrendLine[shift]=EMPTY_VALUE;
      }
      
     }
    return(
0);    
 } 
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #23 (permalink)  
Old 12-03-2007, 11:49 PM
Senior Member
 
Join Date: Oct 2005
Posts: 327
Perky is on a distinguished road
this one doesnt redraw



Quote:
Originally Posted by richx7 View Post
I think SolarWind is one of the best indicator I have seen. I have been testing it and find it gives excellent buy sell exit signals. Here is a version that doesn't repaint. It uses previous data to smooth out the current bar but does add some delay. It is useful for live trading and in EAs. It works good with triggerlines and awesome indicators.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #24 (permalink)  
Old 12-03-2007, 11:51 PM
Senior Member
 
Join Date: Oct 2005
Posts: 327
Perky is on a distinguished road
Quote:
Originally Posted by Perky View Post
this one doesnt redraw
no this one no that one no this one

all I did was chane the colour of histo for downs/ups to give faster indication of changes|
Attached Files
File Type: mq4 Solar Wind cleanxx.mq4 (1.6 KB, 19 views)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #25 (permalink)  
Old 12-05-2007, 09:26 AM
Junior Member
 
Join Date: May 2007
Posts: 16
cyberpasta is on a distinguished road
Quote:
Originally Posted by Perky View Post
no this one no that one no this one

all I did was chane the colour of histo for downs/ups to give faster indication of changes|
How call this indicator from an EA, I've written one and I don´t know what buffer call. Thanks
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
iCustom function homicida Questions 56 07-28-2008 09:57 AM
iCustom question .. yaniv_av Indicators - Metatrader 4 16 06-20-2008 04:37 PM
Easy iCustom and Alerts! codersguru Indicators - Metatrader 4 46 03-06-2008 04:25 AM
I need help on creating an Icustom statement for my EA using this indicator as input! iscuba11 Expert Advisors - Metatrader 4 4 09-11-2006 07:18 PM
iCustom() problem billritz Indicators - Metatrader 4 5 08-23-2006 07:22 AM


All times are GMT. The time now is 05:53 AM.



Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.