Hi, I am preparing my first "simple" strategy, but for me it wasn´t that simple... I created this code:
//Global Variables
extern int slow = 9, fast = 3; // for subsequent optimization process **
extern int z= 150, w = 150;
int start()
{
//--------------------------------------------------------Variables declaration.
int pricet = (High[1]+Close[1]+Low[1])/3;
int ma1 =iMA(NULL, 0, slow, 0,MODE_SMA, PRICE_TYPICAL,0);
int ma2 =iMA(NULL, 0, fast, 0, MODE_SMA, PRICE_TYPICAL,0);
int ma3 =iMA(NULL, 0, slow, 0,MODE_SMA, pricet,0);// I created this variable for simultaneously condition.
int ma4=iMA(NULL, 0, fast, 0, MODE_SMA, pricet,0);
//---------------------------------------------------
if(ma4<ma3 && ma2 == ma1)//simultaneously condition
{
int ticket = OrderSend(Symbol(),OP_BUY,0.03,Ask, 2, Bid-z*Point, Bid+w*Point);
}
//----------------------------------------------------
if(ma4>ma3 && ma2== ma1)// simultaneously condition
{
ticket = OrderSend(Symbol(),OP_SELL,0.03,Bid, 2, Ask-z*Point, Ask+w*Point);
}
//----------------------------------------------------
return(ticket);
}
When I run it with the strategy tester, it just doesnt execute the OrderSend(). Anyone can help me please :)????
Please use the SRC button when posting code, I have done it for you this time.
Hi, I am preparing my first "simple" strategy, but for me it wasn´t that simple... I created this code:
When I run it with the strategy tester, it just doesnt execute the OrderSend(). Anyone can help me please :)????
Your ma1 and m12 will almost never be equal. It is a bad idea to us a comparison like this
The iMA function has the following structure:
iMA ( string symbol, // symbol int timeframe, // timeframe int ma_period, // MA averaging period int ma_shift, // MA shift int ma_method, // averaging method int applied_price, // applied price int shift // shift );
The parameter applied_price can only take the following values:
PRICE_CLOSE -> 0
PRICE_OPEN -> 1
PRICE_HIGH -> 2
PRICE_LOW -> 3
PRICE_MEDIAN -> 4
PRICE_TYPICAL -> 5
PRICE_WEIGHTED -> 6
In the following code you gave wrong use to the parameter applied_price:
int ma3 = iMA ( NULL , 0 , slow, 0 , MODE_SMA , pricet, 0 ); // I created this variable for simultaneously condition. int ma4= iMA ( NULL , 0 , fast, 0 , MODE_SMA , pricet, 0 );
You must assign some of the allowed values
Try this code
//Global Variables extern int slow = 9, fast = 3; // for subsequent optimization process ** extern int z= 150, w = 150; void OnTick() { int ticket; //--------------------------------------------------------Variables declaration. int maSlow_0 =iMA(NULL, 0, slow, 0, MODE_SMA, PRICE_TYPICAL,0); int maFast_0 =iMA(NULL, 0, fast, 0, MODE_SMA, PRICE_TYPICAL,0); int maSlow_1 =iMA(NULL, 0, slow, 0, MODE_SMA, PRICE_TYPICAL,1); int maFast_1 =iMA(NULL, 0, fast, 0, MODE_SMA, PRICE_TYPICAL,1); //--------------------------------------------------- if(maFast_1<maSlow_1 && maFast_0>=maSlow_0)//simultaneously condition { ticket = OrderSend(Symbol(),OP_BUY,0.03,Ask, 2, Bid-z*Point, Bid+w*Point); } //---------------------------------------------------- if(maFast_1>maSlow_1 && maFast_0<=maSlow_0)// simultaneously condition { ticket = OrderSend(Symbol(),OP_SELL,0.03,Bid, 2, Ask+z*Point, Ask-w*Point); } //---------------------------------------------------- }

- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hi, I am preparing my first "simple" strategy, but for me it wasn´t that simple... I created this code:
//Global Variables
extern int slow = 9, fast = 3; // for subsequent optimization process **
extern int z= 150, w = 150;
int start()
{
//--------------------------------------------------------Variables declaration.
int pricet = (High[1]+Close[1]+Low[1])/3;
int ma1 =iMA(NULL, 0, slow, 0,MODE_SMA, PRICE_TYPICAL,0);
int ma2 =iMA(NULL, 0, fast, 0, MODE_SMA, PRICE_TYPICAL,0);
int ma3 =iMA(NULL, 0, slow, 0,MODE_SMA, pricet,0);// I created this variable for simultaneously condition.
int ma4=iMA(NULL, 0, fast, 0, MODE_SMA, pricet,0);
//---------------------------------------------------
if(ma4<ma3 && ma2 == ma1)//simultaneously condition
{
int ticket = OrderSend(Symbol(),OP_BUY,0.03,Ask, 2, Bid-z*Point, Bid+w*Point);
}
//----------------------------------------------------
if(ma4>ma3 && ma2== ma1)// simultaneously condition
{
ticket = OrderSend(Symbol(),OP_SELL,0.03,Bid, 2, Ask-z*Point, Ask+w*Point);
}
//----------------------------------------------------
return(ticket);
}
When I run it with the strategy tester, it just doesnt execute the OrderSend(). Anyone can help me please :)????