Íâ»ãÂÛ̳ ÍâÍòƾ­

¿ªÆô×ó²à

ÎÒÏëÇë½Ì ¹ØÓÚMT4 µÄÎÊÌâ

[¸´ÖÆÁ´½Ó]
·¢±íÓÚ 2007-3-9 08:27 | ÏÔʾȫ²¿Â¥²ã |ÔĶÁģʽ
https://www.y2cn.com
MT4 Óм۸ñ¾¯±¨
ÎÒÏëÎÊһϠÓÐʲô KDJ ºÍ ¾ùÏßµÄ Ö¸±ê¾¯±¨
¶àл ¶àл
·¢±íÓÚ 2007-3-19 21:46 | ÏÔʾȫ²¿Â¥²ã
·¢±íÓÚ 2007-4-8 01:50 | ÏÔʾȫ²¿Â¥²ã
²»ÖªµÀÔõô´«µµ°¸ÉÏÁË Äã×Ô¼º¸´ÖÆcode ½ø indicators



//+------------------------------------------------------------------+
//| MACD_signal.mq4 |
//| tom112 |
//| tom112@mail.wplus.net |
//+------------------------------------------------------------------+
#property copyright "tom112"
#property link "tom112@mail.wplus.net"
//---- input parameters
extern double TakeProfit = 0;
extern double Lots = 0.1;
extern double TrailingStop = 0;
extern int Pfast=7;
extern int Pslow=36;
extern int Psignal=7;
extern double LEVEL=0.001;
double Points;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
Points = MarketInfo (Symbol(), MODE_POINT);
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double MacdCurrent=0, MacdPrevious=0, SignalCurrent=0;
double SignalPrevious=0, MaCurrent=0, MaPrevious=0;
int cnt=0, total;
int i1, pp, shift;
double Tv[2][500] ;
double Range, rr, Delta, Delta1, val3;
// ïåðâè÷íû?ïðîâåðêè äàííûõ
// âàæí?óäîñòîâåðèòü? ÷ò?ýêñïåð?ðàáîòàåò íà íîðìàëüíîì ãðàôèê??
// ïîëüçîâàòåëü ïðàâèëüí?âûñòàâèë âíåøíè?ïåðåìåííûå (Lots, StopLoss,
// TakeProfit, TrailingStop)
// ?íàøå?ñëó÷àå ïðîâåðÿåì òîëüêî TakeProfit
if(Bars<100)
{
Print("bars less than 100");
return(0); // íà ãðàôèê?ìåíå?100 áàðî?
}
if(TakeProfit<10)
{
Print("TakeProfit less than 10");
return(0); // ïðîâåðÿåì TakeProfit
}
Range = iATR(NULL,0,200,1);
rr = Range*LEVEL;
Delta=iMACD(NULL,0,Pfast,Pslow,Psignal,PRICE_CLOSE,MODE_MAIN,0)-
iMACD(NULL, 0 ,Pfast,Pslow,Psignal,PRICE_CLOSE,MODE_SIGNAL,0);
Delta1=iMACD(NULL,0,Pfast,Pslow,Psignal,PRICE_CLOSE,MODE_MAIN,1)-
iMACD(NULL, 0 ,Pfast,Pslow,Psignal,PRICE_CLOSE,MODE_SIGNAL,1);
// òåïåðü íàäî îïðåäåëèòü? - ?êàêî?ñîñò?íè?òîðãîâûé òåðìèíàë?
// ïðîâåðèì, åñòü ëè ðàíå?îòêðûòûå ïîçèöè?èë?îðäåðû?
if(OrdersTotal()<1)
{
// íå?íè îäíîãî îòêðûòîã?îðäåðà
// íà âñÿêè?ñëó÷àé ïðîâåðèì, åñëè ?íà?ñâîáîäíû?äåíüãè íà ñ÷åò?
// çíà÷åíèå 1000 âçÿòî äëÿ ïðèìåð? îáû÷íî ìîæí?îòêðûò?1 ëî?
if(AccountFreeMargin()<(1000*Lots))
{
Print("We have no money");
return(0); // äåíå?íå?- âûõîäè?
}
// ïðîâåðèì, íå ñëèøêî?ëè ÷àñò?ïûòàåì? îòêðûòüñÿ?
// åñëè ïîñëåäíè?ðà?òîðãîâàë?ìåíå?÷å?5 ìèíó?5*60=300 ñå?
// íàçà? òî âûõîäè?
// If((CurTime-LastTradeTime)<300) return(0);
// ïðîâåðÿåì íà âîçìîæíîñò?âñòàòü ?äëèííó?ïîçèöè?(BUY)
if( Delta>rr && Delta1<rr )
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Points,"macd signal",16384,0,Red); // èñïîëíÿåì
if(GetLastError()==0)Print("Order opened : ",OrderOpenPrice());
return(0); // âûõîäè? òà?êà?âñ?ðàâí?ïîñë?ñîâåðøåí? òîðãîâîé îïåðàöèè
// íàñòóïèë 10-òè ñåêóíäíû?òàéìàó?íà ñîâåðøåíèå òîðãîâûõ îïåðàöèé
}
// ïðîâåðÿåì íà âîçìîæíîñò?âñòàòü ?êîðîòêóþ ïîçèöè?(SELL)
if( Delta < -rr && Delta1 > -rr )
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Points,"macd sample",16384,0,Red); // èñïîëíÿåì
if(GetLastError()==0)Print("Order opened : ",OrderOpenPrice());
return(0); // âûõîäè?
}
// çäåñ?ìû çàâåðøèë?ïðîâåðêó íà âîçìîæíîñò?îòêðûò? íîâû?ïîçèöè?
// íîâû?ïîçèöè?îòêðûò?íå áûëè ?ïðîñòî âûõîäè?ïî Exit, òà?êà?
// âñ?ðàâí?àíàëèçèðîâàò?íå÷åãî
return(0);
}
// ïåðåõîäè??âàæíîé ÷àñò?ýêñïåðòà - êîíòðîëþ îòêðûòûõ ïîçèöè?
// 'âàæí?ïðàâèëüí?âîéò??ðûíî? íî âûéò?- åù?âàæíåå...'
total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // ýò?îòêðûò? ïîçèöèÿ? OP_BUY èë?OP_SELL
OrderSymbol()==Symbol()) // èíñòðóìåíò ñîâïàäàå?
{
if(OrderType()==OP_BUY) // îòêðûò?äëèííàÿ ïîçèöèÿ
{
// ïðîâåðèì, ìîæå?óæ?ïîðà çàêðûâàòüñÿ?
if(Delta<0)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // çàêðûâàå?ïîçèöè?
return(0); // âûõîäè?
}
// ïðîâåðèì - ìîæå?ìîæí?íóæí?óæ?òðåéëèíã ñòîï ñòàâèò?
if(TrailingStop>0) // ïîëüçîâàòåëü âûñòàâèë ?íàñòðîéêàõ òðåéëèíãñòîï
{ // çíà÷èò ìû èäåì åã?ïðîâåðÿòü
if(Bid-OrderOpenPrice()>Points*TrailingStop)
{
if(OrderStopLoss()<Bid-Points*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Points*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
else // èíà÷?ýò?êîðîòê? ïîçèöèÿ
{
// ïðîâåðèì, ìîæå?óæ?ïîðà çàêðûâàòüñÿ?
if(Delta > 0)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // çàêðûâàå?ïîçèöè?
return(0); // âûõîäè?
}
// ïðîâåðèì - ìîæå?ìîæí?íóæí?óæ?òðåéëèíã ñòîï ñòàâèò?
if(TrailingStop>0) // ïîëüçîâàòåëü âûñòàâèë ?íàñòðîéêàõ òðåéëèíãñòîï
{ // çíà÷èò ìû èäåì åã?ïðîâåðÿòü
if((OrderOpenPrice()-Ask)>(Points*TrailingStop))
{
if(OrderStopLoss()==0.0 ||
OrderStopLoss()>(Ask+Points*TrailingStop))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Points*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
// the end.
//+------------------------------------------------------------------+
¸ßÅ×µÍÊÕ ÒÀѽÒÀѽӴ

±¾°æ»ý·Ö¹æÔò

QQ|ÊÖ»ú°æ Mobile Version|Archiver|¹ØÓÚÎÒÃÇ About Us|ÁªÏµÎÒÃÇ Contact Us|Y2Íâ»ãÂÛ̳ ÍâÍòƾ­

GMT+8, 2024-5-4 10:37 , Processed in 0.048756 second(s), 23 queries .

Powered by Discuz! X7.2

Copyright © 2001-2021, Tencent Cloud.

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí