Советник на основе OsMA

 

Всем Доброго времени суток...

уже как день знаком с MQL4, и три дня как с торговлей валютными парами =)

и как наверное у всех, появилось желание поэксперементировать с написанием своего советника "грааля" =) который мне принесет милионы ^___________^

я решил поэксперементировать на основе индикатора OsMA, но я столкнулся с поиском функции открытия - закрытия лота, допустим возьмем 5 минутки, если сформировался один бар Value ..., а следующий больше или меньше, то здесь ябы хотел открыть скупку либо продажу... 

не могу сообразить как это дело организовать, на данный момент учу язык, но в голове пока слишком много каши =\

ктонить может подсказать? если такой параметр

нашол на форуме чтото похожее, но не то... тут он оперирует нулями.

//+------------------------------------------------------------------+
extern int TakeProfit=200;
extern int StopLoss=200;
extern double Lots=0.1;
extern int OsMA_fast_period=10;
extern int OsMA_slow_period=20;
extern int OsMA_signal_period=14;
extern int Mn=2007;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
 
double osma=iOsMA(NULL,0,OsMA_fast_period,OsMA_slow_period,OsMA_signal_period,PRICE_CLOSE,0);
double prevosma=iOsMA(NULL,0,OsMA_fast_period,OsMA_slow_period,OsMA_signal_period,PRICE_CLOSE,1);
int ticket=0;
if (OrdersTotal()==0)
{
if(osma>0 && prevosma<=0)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,0,Mn,0,Yellow);
if(ticket<=0)
Print("Error opening BUY order : ",GetLastError());
return(0);
}
if(osma<0 && prevosma>=0)
{
 
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,0,Mn,0,Red);
if(ticket<=0)
Print("Error opening BUY order : ",GetLastError());
}
}
 
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber()==Mn && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY)
{
if(osma<0 && prevosma>=0)
OrderClose(OrderTicket(),OrderLots(),Bid,3,Yellow);
}
if(OrderType()==OP_SELL)
{
if(osma>0 && prevosma<=0)
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
}
}
}
return(0);
}
//+------------------------------------------------------------------+

 
Bulldozer >>:

я решил поэксперементировать на основе индикатора OsMA, но я столкнулся с поиском функции открытия - закрытия лота, допустим возьмем 5 минутки, если сформировался один бар Value ..., а следующий больше или меньше, то здесь ябы хотел открыть скупку либо продажу... 

ктонить может подсказать? если такой параметр

нашол на форуме чтото похожее, но не то... тут он оперирует нулями.



Более внятно, напишите, что вам нужно. 

 
IT-Forex >>:

Более внятно, напишите, что вам нужно. 

прокоментирую :

1. хотелбы открыть продажу, если сфомировавшийся тик находиться выше нуля + следущий тик меньше прошлого в Value. допустим, один тик "0.1000" следующий "0.1100" (ждем) следующий 0.1050 (тут условие сработало. открываем продажу)

ну и аналогично, только ниже нуля на покупку...

маленький рисунок намулевал...


http://s39.radikal.ru/i083/0902/fb/02f8bf7bc61d.png

 
Bulldozer >>:

маленький рисунок намулевал...

Но не вложил.

Только не понятно, что вы хотите, либо что бы за вас это написали, либо разобраться и написать самому, если самому, то делается все простыми сравнениями текущего и предыдущего значения индикатора. Примеров этому масса, покопайтесь например в стандартных экспертах. Если что-то не понятно, спрашивайте, какой конкретно участок кода вам непонятен.

 
Fletcher >>:

Но не вложил.

Только не понятно, что вы хотите, либо что бы за вас это написали, либо разобраться и написать самому, если самому, то делается все простыми сравнениями текущего и предыдущего значения индикатора. Примеров этому масса, покопайтесь например в стандартных экспертах. Если что-то не понятно, спрашивайте, какой конкретно участок кода вам непонятен.

ага, выложил не сразу =\ но теперь исправился ...

этим и займусь, можете конешно кинуть мне рабочий кусок кода сравнениями текушего и предыдушего =) буду благодарен

Причина обращения: