????????????? ???????? ?? ?????????? ?????? ????????????? ???????? ?? ?????????? ??????

 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

?????, ???????? ????????

 
Начать новую тему   Ответить на тему    Список форумов ????????????? ???????? ?? ?????????? ?????? -> ???????????????? ? MQL4
Предыдущая тема :: Следующая тема  
Автор Сообщение
KosyaK



Зарегистрирован: 29.11.2007
Сообщения: 5
Откуда: ?????

СообщениеДобавлено: Ср Dec 05, 2007 3:41 pm    Заголовок сообщения: ?????, ???????? ???????? Ответить с цитатой

????? ??????????? ? mql, ????????? ?? ?????????:
Код:

extern double    Lots=0.1;
extern int       MagicNumber = 12345;
extern int       StopLoss=0;
extern int       TakeProfit=0;
extern bool       Buy=true;
extern bool       Sell=true;

int Slippage=3;
double SL, TP;
int HA=0;
int AllowBuy=0;
int AllowSell=0;
//HeikenAshi
int MaMetod  = 2;
int MaPeriod = 6;
int MaMetod2  = 3;
int MaPeriod2 = 2;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
 
HA=HeikenAshi();
// ???????? ???????
int Total=0;
for(int cnt=0;cnt<OrdersTotal();cnt++)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
      {
      Total++;
      if(OrderType()==OP_BUY  && HA<0) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,CLR_NONE);
      if(OrderType()==OP_SELL && HA>0) OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,CLR_NONE);
      }
   }
// ??????? ? ???????
if(Total==0)
   {
   if(HA==1){AllowBuy=1;}
   if(Buy==true && AllowBuy==1)
      {
         SL=0;TP=0;
         if(StopLoss!=0)  SL=Bid-StopLoss*Point;
         if(TakeProfit!=0)TP=Bid+TakeProfit*Point;
         OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,NULL,MagicNumber,0,Green);
      }
   
   if (HA==-1){AllowSell=1;}
   if(Sell==true && AllowSell==1)
      {
         SL=0;TP=0;
         if(StopLoss!=0)  SL=Ask+StopLoss*Point;
         if(TakeProfit!=0)TP=Ask-TakeProfit*Point;
         OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,NULL,MagicNumber,0,Red);
      }
   }
return(0);
}
//+------------------------------------------------------------------+
int HeikenAshi()
{
   double maOpen, maClose, maLow, maHigh;
   double haOpen, haHigh, haLow, haClose;
   double ExtMapBuffer1[100],ExtMapBuffer2[100],ExtMapBuffer3[100],ExtMapBuffer4[100];
for(int pos=99; pos>0; pos--)
   {
      maOpen   =iMA(NULL,0,MaPeriod,0,MaMetod,MODE_OPEN,pos);
      maClose  =iMA(NULL,0,MaPeriod,0,MaMetod,MODE_CLOSE,pos);
      maLow    =iMA(NULL,0,MaPeriod,0,MaMetod,MODE_LOW,pos);
      maHigh   =iMA(NULL,0,MaPeriod,0,MaMetod,MODE_HIGH,pos);

      haOpen=(ExtMapBuffer1[pos+1]+ExtMapBuffer2[pos+1])/2;
      haClose=(maOpen+maHigh+maLow+maClose)/4;
      haHigh=MathMax(maHigh, MathMax(haOpen, haClose));
      haLow=MathMin(maLow, MathMin(haOpen, haClose));
      if (haOpen<haClose)
        {
         ExtMapBuffer3[pos]=haLow;
         ExtMapBuffer4[pos]=haHigh;
        }
      else
        {
         ExtMapBuffer3[pos]=haHigh;
         ExtMapBuffer4[pos]=haLow;
        }
      ExtMapBuffer1[pos]=haOpen;
      ExtMapBuffer2[pos]=haClose;
   }
if(haLow==haOpen)return(1); //Buy
if(haHigh==haOpen)return(-1);//Sell
else            {return(-1);} //Nothing
}
//+------------------------------------------------------------------+

??? ?? ???????????? ?????????, ??? ??????? ???, ????? ?????? ??????????? ????? ?????? HA ?????? ???? ????.
?? ??????? - ??????? HA ???????, ????? ?????. ??? ???? ????? AllowBuy ???? 1 ?????? ?? ????, ?????????? ????? ??????. ? ? ????????? ????? (??????? ???? ? ??????) ???? 0.
????????? ????????.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alextur



Зарегистрирован: 14.02.2006
Сообщения: 103
Откуда: ?????

СообщениеДобавлено: Ср Dec 05, 2007 4:55 pm    Заголовок сообщения: Ответить с цитатой

???? AllowBuy ?????? ???? ???????? ??? ?? ??? ? ???? ?????, ?? ???? ????????? HA (??? ??? ???? ????? AllowBuy ? AllowSell) ? ?????????? ??????. ????????? ?? ?????? ? ?? ????????, ??? ??? ????? ???????? ? ???????????.

Код:

extern double    Lots=0.1;
extern int       MagicNumber = 12345;
extern int       StopLoss=0;
extern int       TakeProfit=0;
extern bool       Buy=true;
extern bool       Sell=true;

int Slippage=3;
double SL, TP;
int HA=0;
int prevHA = 0; // added by alextur
int AllowBuy=0;
int AllowSell=0;
//HeikenAshi
int MaMetod  = 2;
int MaPeriod = 6;
int MaMetod2  = 3;
int MaPeriod2 = 2;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
 
HA=HeikenAshi();
prevHA = HeikenAshi(1); // added by alextur
// ???????? ???????
int Total=0;
for(int cnt=0;cnt<OrdersTotal();cnt++)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
      {
      Total++;
      if(OrderType()==OP_BUY  && HA<0) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,CLR_NONE);
      if(OrderType()==OP_SELL && HA>0) OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,CLR_NONE);
      }
   }
// ??????? ? ???????
if(Total==0)
   {
   if(HA==1 && prevHA==-1){AllowBuy=1;} // changed by alextur
   if(Buy==true && AllowBuy==1)
      {
         SL=0;TP=0;
         if(StopLoss!=0)  SL=Bid-StopLoss*Point;
         if(TakeProfit!=0)TP=Bid+TakeProfit*Point;
         OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,NULL,MagicNumber,0,Green);
      }
   
   if (HA==-1 && prevHA == 1){AllowSell=1;} // changed by alextur
   if(Sell==true && AllowSell==1)
      {
         SL=0;TP=0;
         if(StopLoss!=0)  SL=Ask+StopLoss*Point;
         if(TakeProfit!=0)TP=Ask-TakeProfit*Point;
         OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,NULL,MagicNumber,0,Red);
      }
   }
return(0);
}
//+------------------------------------------------------------------+
int HeikenAshi(int start = 0) // changed by alextur
{
   double maOpen, maClose, maLow, maHigh;
   double haOpen, haHigh, haLow, haClose;
   double ExtMapBuffer1[100],ExtMapBuffer2[100],ExtMapBuffer3[100],ExtMapBuffer4[100];
for(int pos=99+start; pos>start; pos--) // changed by alextur
   {
      maOpen   =iMA(NULL,0,MaPeriod,0,MaMetod,MODE_OPEN,pos);
      maClose  =iMA(NULL,0,MaPeriod,0,MaMetod,MODE_CLOSE,pos);
      maLow    =iMA(NULL,0,MaPeriod,0,MaMetod,MODE_LOW,pos);
      maHigh   =iMA(NULL,0,MaPeriod,0,MaMetod,MODE_HIGH,pos);

      haOpen=(ExtMapBuffer1[pos+1]+ExtMapBuffer2[pos+1])/2;
      haClose=(maOpen+maHigh+maLow+maClose)/4;
      haHigh=MathMax(maHigh, MathMax(haOpen, haClose));
      haLow=MathMin(maLow, MathMin(haOpen, haClose));
      if (haOpen<haClose)
        {
         ExtMapBuffer3[pos]=haLow;
         ExtMapBuffer4[pos]=haHigh;
        }
      else
        {
         ExtMapBuffer3[pos]=haHigh;
         ExtMapBuffer4[pos]=haLow;
        }
      ExtMapBuffer1[pos]=haOpen;
      ExtMapBuffer2[pos]=haClose;
   }
if(haLow==haOpen)return(1); //Buy
if(haHigh==haOpen)return(-1);//Sell
else            {return(-1);} //Nothing
}
//+------------------------------------------------------------------+
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KosyaK



Зарегистрирован: 29.11.2007
Сообщения: 5
Откуда: ?????

СообщениеДобавлено: Чт Dec 06, 2007 8:02 pm    Заголовок сообщения: Ответить с цитатой

alextur, ??????? ?? ?????????
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KosyaK



Зарегистрирован: 29.11.2007
Сообщения: 5
Откуда: ?????

СообщениеДобавлено: Чт Dec 13, 2007 3:42 pm    Заголовок сообщения: Ответить с цитатой

??? ????????. ???? ??????? ??? - ????????? ???? ?-?? OrderSend, ????? ????????? SL ? TP ? ??? ?-?? OrderModify. ??? ??? ???????? ??????????????? ??? ???????? ?????? ?????? ?? ???? ?????????? ???????? ??????? ? ?????, ?????????? ??? ??? ???????????(?? ??????).
Код:

int StopLoss=200;
int TakeProfit=25;
...
ticket=OrderSend(Symbol(),OP_BUY,GetLots(),Ask,Slippage,0,0,NULL,MagicNumber,0,Green);
         if(ticket>0)
            {
            OrderModify(ticket,/*??? ????? ?????? ???????*/);
            }
         else Print("OrderSend failed with error #",GetLastError());
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alextur



Зарегистрирован: 14.02.2006
Сообщения: 103
Откуда: ?????

СообщениеДобавлено: Чт Dec 13, 2007 6:05 pm    Заголовок сообщения: Ответить с цитатой

???? ?? ??????? ???????? ?? OrderModify ? ??????? F1, ?? ???????? ?????? ???????? ??????? ? ????????. ????? ? ??????? ?? ?????? ??????????? help, ? ??????? ????? ???????? ???? ????????? ???????, ???????? ?? ????????? ??????. ????? ??? ????? ???????? ??? ???, ??? ? ????? ?? ?????? ?????.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов ????????????? ???????? ?? ?????????? ?????? -> ???????????????? ? MQL4 Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять вложения в этом форуме
Вы не можете просматривать вложения в этом форуме
Рейтинг@Mail.ru


Powered by phpBB © 2001, 2005 phpBB Group