|
????????????? ???????? ?? ?????????? ??????
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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, ? ??????? ????? ???????? ???? ????????? ???????, ???????? ?? ????????? ??????. ????? ??? ????? ???????? ??? ???, ??? ? ????? ?? ?????? ?????. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять вложения в этом форуме Вы не можете просматривать вложения в этом форуме
|
Powered by phpBB © 2001, 2005 phpBB Group
|