Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
FT_CCI_0_3
//+------------------------------------------------------------------+
//| FT_CCI.mq4 |
//| FORTRADER.RU, Þðèé, ftyuriy@gmail.com |
//| http://FORTRADER.RU, Ôðàêòàëû + Ñðåäíèå |
//+------------------------------------------------------------------+
#property copyright "FORTRADER.RU, Þðèé, ftyuriy@gmail.com"
#property link "http://FORTRADER.RU, CCI"
/*Ðàçðàáîòàíî äëÿ 50 âûïóñêà æóðíàëà FORTRADER.Ru. Ñèñòåìà ïî CCI.
Îò÷åòû: http://finfile.ru/index.php/files/get/4LvxA6u0UY/ft-cci-result2.zip
Ñåò ôàéëû:http://finfile.ru/index.php/files/get/Kz2LK5Gnj6/eurusdh1.set
Îáñóæäåíèå: http://fxnow.ru/group_discussion_view.php?group_id=49&grouptopic_id=409&grouppost_id=3439#post_3439
Àðõèâ æóðíàëà: http://www.fortrader.ru/arhiv.php
50 âûïóñê: http://www.fortrader.ru/
v0.3 - ìîäèôèêàöèÿ äëÿ îäèíàêîâûõ òåñòîâ ïî êîíòðîëüíûì òî÷êàì/öåíàì îòêðûòèÿ/ïî òèêàì
*/
extern int cciper=14;
extern int ccUPur=200;
extern int ccDWur=-200;
extern int SL=0;
extern int TP=0;
extern int mn=1;
int err;
extern int MG=564651;
extern double Lots=0.1;
int bars;
int start()
{
if(Bars!=bars)
{bars=Bars;
OpenPattern();//îòêðûâàåì ñäåëêè ïðè ìåðåñå÷åíèè
}
return(0);
}
int okbuy,oksell;
void OpenPattern()
{
double op,sl,tp;
double CCICurr=iCCI(Symbol(),0,cciper,PRICE_TYPICAL,1);
if(CCICurr<ccDWur) {okbuy=1;}
if(CCICurr>ccDWur && okbuy==1 ) {okbuy=0;
if(timecontrol()==1)
{
op=Ask;if(SL>0){sl=Ask-SL*Point*mn;}if(TP>0){tp=Ask+TP*Point*mn;}
err=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"6 FORTRADER.RU",MG,0,Red);
if(err<0){Print("OrderSend()- Îøèáêà OP_BUY. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
}
CloseAllPos(0);
}
if(CCICurr>ccUPur) {oksell=1;}
if(CCICurr<ccUPur && oksell==1) {oksell=0;
if(timecontrol()==1)
{
op=Bid;if(SL>0){sl=Bid+SL*Point*mn;}if(TP>0){tp=Bid-TP*Point*mn;}
err=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"4 FORTRADER.RU",MG,0,Red);
if(err<0){Print("OrderSend()- Îøèáêà OP_SELL. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
}
CloseAllPos(1);
}
}
//Çàêðûâàåì âñå ïîçèöèè ïî òèïó
int CloseAllPos(int type)
{//Îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=72
int buy=1; int sell=1;
int i,b=0;int ordertiket;
if(type==1)
{
while(buy==1)
{
buy=0;
for( i=0;i<OrdersTotal();i++)
{
if(true==OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() ){buy=1; OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);}
}else{buy=0;}
}
if(buy==0){return(0);}
}
}
if(type==0 )
{
while(sell==1)
{
sell=0;
for( i=0;i<OrdersTotal();i++)
{
if(true==OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() ){sell=1;OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); }
}else{sell=0;}
}
if(sell==0){return(0);}
}
}
return(0);
}
//ïðîâåðÿåò åñòü ëè îòêðûòûå îðäåðà
int ChPos(int type)
{//ïîäðîáíîå îïèñàíèå: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=100
int i;int col;
for( i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1,SELECT_BY_POS)==true)
{
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type==1&& OrderMagicNumber()==MG){col=1;}
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0&& OrderMagicNumber()==MG){col=1;}
}
}
return(col);
}
//ñóììèðóåò ðåçóëüòàò ïîçèöèé ïî òèïó
int SummPos(int type)
{//ïîäðîáíîå îïèñàíèå: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=100
int i;double summ;
for( i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1,SELECT_BY_POS)==true)
{
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type==1&& OrderMagicNumber()==MG){summ=summ+OrderProfit();}
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0&& OrderMagicNumber()==MG){summ=summ+OrderProfit();}
}
}
return(summ);
}
extern int time=0; //1 - âêëþ÷åíî, 0 - âûêëþ÷åíî.
extern int starttime = 7;
extern int stoptime = 17;
//Îãðàíè÷åíèå ïî âðåìåíè
int timecontrol()
{// Ïîäðîáíîå îïèñàíèå http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=1
if ( ( (Hour()>=0 && Hour()<=stoptime-1) || (Hour()>=starttime && Hour()<=23)) && starttime>stoptime)
{
return(1);
}
if ( (Hour()>=starttime && Hour()<=stoptime-1) && starttime<stoptime)
{
return(1);
}
if(time==0){ return(1);}
return(0);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---