Price Data Components
Orders Execution
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
Rosa
//+------------------------------------------------------------------
// Ýêñïåðòíàÿ ñèòåìà - Rosa[].mq4
// [v0]
//
// Äëÿ íîðìàëüíîé ðàáîòû ñëåäóåò óñòàíîâèòü èíäèêàòîð
// SilverTrend_Signal With Alert v3e íà ãðàôèê ñ ýòèì ýêñïåðòîì
// Äàííûå î íàïðàâëåíèè òðåíäà ïåðåäàþòñÿ ñ èíäèêàòîðà SilverTrend_Signal With Alert v3e
// ê ýêñïåðòó ñ ïîìîùüþ ãëîáàëüíûõ ïåðåìåííûõ (GlobalVariableGet("....")).
// Äàëåå ñîâåòíèê îòêðûâàåò ïîçû ïî ñèãíàëàì èíäèêàòîðà SilverTrend_Signal With Alert v3e.
//
//
//
//
//+------------------------------------------------------------------
#property copyright "."
#property link "http://www.fegal.4u.ru/"
#property show_inputs
extern double TakeProfit = 15;
extern double StopLoss = 25;
extern double Lots = 0.1;
extern double TrailingStop = 5;
double ih=0,sl=0,tp=0,vrb=0,vrs=0,Tt,fmod,im;
double otk_b,otk_s,Lotsi,zk_b,zk_s;
int cnt, ticket, total;
double Slippage=3,DeltaLimit=0;
GlobalVariableSet("xSELL",0);
GlobalVariableSet("xBUY",0);
int init(){
return(0);}
//----------
int start()
{
//if(Symbol()<"USDJPY") {Comment("Íå òà âàëþòà.");return(0);}
//if(Period()>1){Comment("Íå òîò ïåðèîä.");return(0);}
if(Bars<100) {Comment("bars less than 100");return(0);}
//if(Year()>2005) {return(0);}
total=OrdersTotal();
//---- Êîíòðîëü îòêðûòûõ ïîçèöèé. Íà÷àëî áëîêà.
if(total>0)
{ for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
//---- Êîíòðîëü íà BUY
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
{
Comment("Êîíòðîëèðóþ íà BUY: ",OrderLots()," Ëîò(à)");
//===== Áëîê òåõíè÷åñêîãî àíàëèçà ïîçû íà BUY
//0
if(
iRVI(NULL,5,8,MODE_MAIN,1)>iRVI(NULL,5,8,MODE_SIGNAL,1)
&& iRVI(NULL,5,8,MODE_MAIN,0)<iRVI(NULL,5,8,MODE_SIGNAL,0)&&
iRVI(NULL,5,8,MODE_MAIN,1)>0.15
){if( Bid>(OrderOpenPrice()+TrailingStop*Point)
){zk_b=1;}}
//1
if(
iStochastic(NULL,5,12,4,3,MODE_EMA,1,MODE_MAIN,1)<
iStochastic(NULL,5,12,4,3,MODE_EMA,1,MODE_SIGNAL,1)
&& iStochastic(NULL,5,12,4,3,MODE_EMA,1,MODE_SIGNAL,1)>70 && fmod>0
){if( Bid>(OrderOpenPrice()+(TrailingStop-3)*Point)
){zk_b=1;}}
//===== Èñïîëíåíèå ïî ðåçóëüòàòó àíàëèçà.
if( zk_b>0 ){
ticket=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Aqua);
if(ticket>0){vrb=CurTime();zk_b=0;}
Alert(" Ðîáîò <Rosa[]>","\n","Áàëàíñ _____ ",AccountBalance(),"\n",
"Çàêðûë ____ ",OrderProfit()," ïóíêòîâ [",ticket,"]");
return(0); }
//===== Ìîäèôèêàöèÿ ÎÐÄÅÐÀ [òðåéëèíã ñòîï BUY]
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if((OrderStopLoss()<(Bid-Point*(TrailingStop))) || ( Point*(Bid+9)>tp) )
{
Comment("Ìîäèôèöèðóþ.");
sl=Low[Lowest(NULL,1,MODE_LOW,10,10)]; tp=High[Highest(NULL,1,MODE_HIGH,10,10)];
if((tp-Ask)<15){tp=Ask+15*Point;}
if((Bid-sl)<25){sl=Bid-25*Point;}
if( sl>OrderStopLoss() && tp>OrderTakeProfit() ){
OrderModify(OrderTicket(),OrderOpenPrice(),sl,tp,0,Aqua);
im=1;fmod=fmod+1;return(0); } } } }
}//---Êîíåö áëîêà êîíòðîëÿ íà BUY
//---- Êîíòðîëü íà SELL
if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
{
Comment("Êîíòðîëèðóþ íà SELL: ",OrderLots()," Ëîò(à)");
//===== Áëîê òåõíè÷åñêîãî àíàëèçà ïîçû íà SELL
//0
if(
iRVI(NULL,5,8,MODE_MAIN,1)<iRVI(NULL,5,8,MODE_SIGNAL,1)
&& iRVI(NULL,5,8,MODE_MAIN,0)>iRVI(NULL,5,8,MODE_SIGNAL,0)&&
iRVI(NULL,5,8,MODE_MAIN,1)<-0.15
){ if( Ask<(OrderOpenPrice()-TrailingStop*Point)
){zk_s=1;}}
//1
if(
iStochastic(NULL,5,12,4,3,MODE_EMA,1,MODE_MAIN,1)>
iStochastic(NULL,5,12,4,3,MODE_EMA,1,MODE_SIGNAL,1)
&& iStochastic(NULL,5,12,4,3,MODE_EMA,1,MODE_SIGNAL,1)<30 && fmod>0
){ if( Ask<(OrderOpenPrice()-(TrailingStop-3)*Point)
){zk_s=1;}}
//===== Èñïîëíåíèå ïî ðåçóëüòàòó àíàëèçà.
if( zk_s>0 ){
ticket=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Gold);
if(ticket>0){vrs=CurTime();zk_s=0;}
Alert(" Ðîáîò <Rosa[]>","\n","Áàëàíñ _____ ",AccountBalance(),"\n",
"Çàêðûë ____ ",OrderProfit()," ïóíêòîâ [",ticket,"]");
return(0); }
//===== Ìîäèôèêàöèÿ ÎÐÄÅÐÀ [òðåéëèíã ñòîï SELL]
if(TrailingStop>0)
{
if(OrderOpenPrice()-Ask>Point*TrailingStop)
{
if((OrderStopLoss()>(Ask+Point*(TrailingStop))) || ( Point*(Bid-9)>tp)
|| (OrderStopLoss()==0))
{
Comment("Ìîäèôèöèðóþ.");
sl=Low[Lowest(NULL,1,MODE_LOW,10,10)]; tp=High[Highest(NULL,1,MODE_HIGH,10,10)];
if((tp-Ask)<15){tp=Ask+15*Point;}
if((Bid-sl)<25){sl=Bid-25*Point;}
if( sl<OrderStopLoss() && tp<OrderTakeProfit() ){
OrderModify(OrderTicket(),OrderOpenPrice(),sl,tp,0,Gold);
im=1;fmod=fmod+1;return(0); } } } }
}//---Êîíåö áëîêà êîíòðîëÿ íà SELL
}}//---- Êîíòðîëü îòêðûòûõ ïîçèöèé. Êîíåö áëîêà.
//======= Áëîê âçàèìîäåéñòâèÿ ñ äðóãèìè ýêñïåðòàìè.===============
if(total>0)
{
for(cnt=0;cnt<total;cnt++) {OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if( (OrderSymbol()<Symbol()) || (OrderSymbol()>Symbol()) )
{Comment("Òåðìèíàë çàíÿò. Ïðîñòàèâàþ.");} } }
//================================================================
if(total<1)
{ //---- Îòêðûòü ïîçó. Íà÷àëî áëîêà.
if(AccountBalance()<100){Comment("Ìàëî äåíåã."); return(0); }
Lotsi=0.1;
//===== Áëîê òåõíè÷åñêîãî àíàëèçà
//=====
double otk_s=GlobalVariableGet("xSELL");//ñ÷èòûâàíèå ãëîáàëüíîé ïåðåìåííîé
double otk_b=GlobalVariableGet("xBUY");
if( otk_s==0 || otk_b==0 ) {Comment("Òåðìèíàë ïóñò. Òîðãóþ.");}
if( otk_s==1 ){ otk_s=2;otk_b=0;ih=2;}
if( otk_b==1 ){ otk_b=2;otk_s=0;ih=2;}
if( otk_s>0 ) {Comment("Òåðìèíàë ïóñò. Òîðãóþ. Êîíòðîëüíûé øàã__¹ ",ih,"\n",
"Íàìåðåâàþñü îòêðûòü íà SELL","\n","îòêðûòèå íà øàãå 2");}
if( otk_b>0 ) {Comment("Òåðìèíàë ïóñò. Òîðãóþ. Êîíòðîëüíûé øàã__¹ ",ih,"\n",
"Íàìåðåâàþñü îòêðûòü íà BUY","\n","îòêðûòèå íà øàãå 2");}
//=====
//======= Îòêðûòèå ïîçû íà SELL ==========
if ( otk_s==2 && (CurTime()-vrs)>120
){
//Lotsi=MathMax(0.1,MathFloor(AccountFreeMargin()/500.)/10.);
ticket=OrderSend(Symbol(),OP_SELL,Lotsi,Bid,Slippage,
Ask+StopLoss*Point+DeltaLimit*Point,Bid-TakeProfit*Point+DeltaLimit*Point,
"Rosa",1002,0,Gold);
if(ticket>0){Tt=CurTime();otk_s=0;fmod=0;GlobalVariableSet("xSELL",0);}
Alert("Ðîáîò <Rosa[]>__ïîçà íà Sell __ [",ticket,"] ",Symbol(),"\n","Âðåìÿ ______ ",
TimeToStr(CurTime()),"\n","Áàëàíñ ______ ",AccountBalance());
return(0);}
//============
//======= Îòêðûòèå ïîçû íà BUY ===========
if( otk_b==2 && (CurTime()-vrs)>120
){
//Lotsi=MathMax(0.1,MathFloor(AccountFreeMargin()/500.)/10.);
ticket=OrderSend(Symbol(),OP_BUY,Lotsi,Ask,Slippage,
Bid-StopLoss*Point-DeltaLimit*Point,Ask+TakeProfit*Point-DeltaLimit*Point,
"Rosa",1002,0,Aqua);
if(ticket>0){Tt=CurTime();otk_b=0;fmod=0;GlobalVariableSet("xBUY",0);}
Alert("Ðîáîò <Rosa[]>__ïîçà íà BUY ___ [",ticket,"] ",Symbol(),"\n","Âðåìÿ ______ ",
TimeToStr(CurTime()),"\n","Áàëàíñ ______ ",AccountBalance());
return(0);}
} //---- Îòêðûòü ïîçó. Êîíåö áëîêà.
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
---