Orders Execution
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
JS_ma_paraboliks_Trades
//+--------------------------------------------------------------------------------------------+
//|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
//+--------------------------------------------------------------------------------------------+
//|\ \ JS.ma.paraboliks.Trades.mq4 / / |
//| )----)------)---------------------------------------------------------------(------(----( |
//|/ / Ïèøó òîðãîâûå ñèñòåìû js_sergey@list.ru Ñåðãåé © 2009 \ \ |
//+--------------------------------------------------------------------------------------------+
//|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
//+--------------------------------------------------------------------------------------------+
#property copyright " js_sergey@list.ru "
#property link " http://multiexperts.ru/ "
/*#include <JS-Lots.mqh> // Áèáëèîòåêà ôóíêöèé ðàñ÷¸òà ðàçìåðà ëîòà.*/
/*extern*/ int mn = 10;
//+--------------------------------------------------------------------------------------------+
//|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
//+--------------------------------------------------------------------------------------------+
extern bool Times = True; // ----------- 1 - âêëþ÷åíî, 0 - âûêëþ÷åíî |
extern int starttime = 1; // --------------------- ÷àñû ðàáîòû ñòàðò |
extern int stoptime = 22; // ---------------------- ÷àñû ðàáîòû ñòîï |
extern double Lots = 0.1; // ----------------------------------------|
extern int prof = 40;
extern int SL.ðåàë = 20; // ----------------------------------------|
extern int TP.ðåàë = 300; // ----------------------------------------|
extern bool Óðîâåíü.áåçóáûòêà = True; // ----------------------------------------|
extern int Áåçóáûòîê = 9; // ----------------------------------------|
extern int Magic = 185967; // ----------------------------------------|
extern int UR.profit = 0; // ----------------------------------------|
extern int Slippage = 20; // ----------------------------------------|
extern bool ClosePosicion = True; // ----------------------------------------|
//+--------------------------------------------------------------------------------------------+
//|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
//+--------------------------------------------------------------------------------------------+
extern int Ma.per.1 = 5; // Ïåðèîä ÌÀ ------------------------------|
extern int Ma.per.2 = 9; // Ïåðèîä ÌÀ ------------------------------|
extern int Ma.per.3 = 55; // Ïåðèîä ÌÀ ------------------------------|
extern int Ma.per.4 = 89; // Ïåðèîä ÌÀ ------------------------------|
extern int mashag = 1120; // Ôèëüòð ÌÀ ------------------------------|
//+--------------------------------------------------------------------------------------------+
//|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
//+--------------------------------------------------------------------------------------------+
extern double Par.sar = 0.02; // ----------------------------------------|
extern double Par.shag = 0.2; // ----------------------------------------|
//+--------------------------------------------------------------------------------------------+
//|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
//+--------------------------------------------------------------------------------------------+
extern bool UseSound = True; // ------------------- Èñïîëüçîâàòü çâóêîâîé ñèãíàë |
extern string Sound.bay = "news.wav"; // ---------- Íàèìåíîâàíèå çâóêîâîãî ôàéëà |
extern string Sound.sell = "alert2.wav"; // ---------- Íàèìåíîâàíèå çâóêîâîãî ôàéëà |
extern string Sound.stops = "stops.wav"; // ---------- Íàèìåíîâàíèå çâóêîâîãî ôàéëà |
extern string Sound.close = "ok.wav"; // ---------- Íàèìåíîâàíèå çâóêîâîãî ôàéëà |
//+--------------------------------------------------------------------------------------------+
//|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
//+--------------------------------------------------------------------------------------------+
double SAR0,ma.1,ma.3,ma.5,ma.6,ma.7,ma.8;
double Dig,dBid,dAsk,point,stoplevel;
double sar, SARs, SARn;
int ticket,Trend;
//+--------------------------------------------------------------------------------------------+
//|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
//+--------------------------------------------------------------------------------------------+
#include <stdlib.mqh>
int init()
{
//----
//----
return(0);
}
///////////////////////////////////////////////////////////////////////////////////////////////|
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
///////////////////////////////////////////////////////////////////////////////////////////////|
int start()
{
Dig = MarketInfo(Symbol(),MODE_DIGITS);
dBid = MarketInfo(Symbol(),MODE_BID);
dAsk = MarketInfo(Symbol(),MODE_ASK);
point = MarketInfo(Symbol(),MODE_POINT)*mn;
stoplevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
if(ClosePosicion)ClosePos();
if(Óðîâåíü.áåçóáûòêà)OrdersModif();
OpenPosicion();
line();
return(0);
}
///////////////////////////////////////////////////////////////////////////////////////////////|
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
///////////////////////////////////////////////////////////////////////////////////////////////|
int deinit()
{
//---
ObjectDelete("linestops");
ObjectDelete("_price");
ObjectDelete("_pricel");
ObjectDelete("line");
//---
return(0);
}
///////////////////////////////////////////////////////////////////////////////////////////////|
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
///////////////////////////////////////////////////////////////////////////////////////////////|
void ClosePos()
{
int CLbay = 0;
int CLsell = 0;
if(SARs>=ma.1)CLbay=1;
if(SARs<=ma.1)CLsell=1;
bool eer;
int cnt = OrdersTotal();
for (int i=cnt-1; i>=0; i--) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != Magic) continue;
if (OrderType() == OP_BUY && CLbay==1 && OrderProfit()>prof) {
eer=OrderClose(OrderTicket(), OrderLots(), ND(dBid), Slippage);
if(UseSound && eer==true){ PlaySound(Sound.close);
}
}
if (OrderType() == OP_SELL && CLsell==1 && OrderProfit()>prof) {
eer=OrderClose(OrderTicket(), OrderLots(), ND(dAsk), Slippage);
if(UseSound && eer==true){ PlaySound(Sound.close);
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////|
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
///////////////////////////////////////////////////////////////////////////////////////////////|
void OrdersModif()
{
double dBid = MarketInfo(Symbol(),MODE_BID);
double dAsk = MarketInfo(Symbol(),MODE_ASK);
int cnt = OrdersTotal();
bool eer;
for (int i=0; i<cnt; i++)
{
if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != Magic) continue;
if (OrderType() == OP_BUY){
if (OrderStopLoss()<OrderOpenPrice() && (OrderOpenPrice()+(stoplevel*point+Áåçóáûòîê*point))<dBid){
eer=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice() + Áåçóáûòîê*point,OrderTakeProfit(),OrderExpiration());
if(UseSound && eer==true){ PlaySound(Sound.stops);
}
}
}
if (OrderType() == OP_SELL){
if (OrderStopLoss()>OrderOpenPrice() && (OrderOpenPrice()-(stoplevel*point+Áåçóáûòîê*point))>dAsk){
eer=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Áåçóáûòîê*point,OrderTakeProfit(),OrderExpiration());
if(UseSound && eer==true){ PlaySound(Sound.stops);
}
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////|
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
///////////////////////////////////////////////////////////////////////////////////////////////|
void OpenPosicion()
{
ma.1 = iMA(Symbol(),0,Ma.per.1,0,MODE_LWMA,PRICE_MEDIAN,0);
ma.3 = iMA(Symbol(),0,Ma.per.2,0,MODE_LWMA,PRICE_MEDIAN,0);
ma.5 = iMA(Symbol(),0,Ma.per.3,0,MODE_LWMA,PRICE_MEDIAN,0);
ma.6 = iMA(Symbol(),0,Ma.per.3,0,MODE_LWMA,PRICE_MEDIAN,1);
ma.7 = iMA(Symbol(),0,Ma.per.4,0,MODE_LWMA,PRICE_MEDIAN,0);
ma.8 = iMA(Symbol(),0,Ma.per.4,0,MODE_LWMA,PRICE_MEDIAN,1);
int filtrs = (MathAbs(ma.1-ma.8)/point)*mn;
double tp,sl,tmp;
if(DayOfWeek()==6 || DayOfWeek()==4)return(0);// íå ðàáîòàåò â âûõîäíûå äíè.
//----------------------
if(SARs<Close[1] && SARs>Low[1] && ma.5>ma.6 && ma.7>ma.8 && ma.1>ma.3 && ma.5>ma.7 && Posor()==0 && timecontrol()==True)//sarfast<=dAsk && dLow<Psar &&
{
if(TP.ðåàë>=stoplevel) tp=dAsk+(TP.ðåàë*point);
ticket = OrderSend(Symbol(), OP_BUY, Lots, ND(dAsk), Slippage, ND(SARn), ND(tp), "", Magic, 0, Green);
if(ticket<0){Print("OrderSend Îøèáêà OP_BUY. price "+DT(dAsk)+" sl "+DT(SARn)+" tp "+DT(tp)+" "+GetLastError());return(-1);}
if(ticket>0)
{
if(UseSound) PlaySound(Sound.bay);
return (ticket);
}
}
//----------------------
if(SARs>Close[1] && SARs<High[1] && ma.5<ma.6 && ma.7<ma.8 && ma.1<ma.3 && ma.5<ma.7 && Posor()==0 && timecontrol()==True)//sarfast>=dBid && dHigh>Psar &&
{
if(TP.ðåàë>=stoplevel) tp = dBid-(TP.ðåàë*point);
ticket = OrderSend(Symbol(), OP_SELL, Lots, ND(dBid), Slippage, ND(SARn), ND(tp), "", Magic, 0, Red);
if(ticket<0){Print("OrderSend Îøèáêà OP_SELL. price "+DT(dAsk)+" sl "+DT(SARn)+" tp "+DT(tp)+" "+GetLastError());return(-1);}
if(ticket>0)
{
if(UseSound) PlaySound(Sound.sell);
return (ticket);
}
}
return(0);
}
///////////////////////////////////////////////////////////////////////////////////////////////|
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
///////////////////////////////////////////////////////////////////////////////////////////////|
bool Posor(string sy="", int op=-1, datetime ot=0) {
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (Magic<0 || OrderMagicNumber()==Magic) {
if (ot<=OrderOpenTime()) return(True);
}
}
}
}
}
}
return(False);
}
///////////////////////////////////////////////////////////////////////////////////////////////|
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
///////////////////////////////////////////////////////////////////////////////////////////////|
double ND(double A){// Ïðèâåäåíèå çíà÷åíèé ê òî÷íîñòè |
return(NormalizeDouble(MathAbs(A),Dig));// |
} // |
string DT(double R){ // |
return(DoubleToStr(MathAbs(R),Dig)); // |
} // |
///////////////////////////////////////////////////////////////////////////////////////////////|
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
///////////////////////////////////////////////////////////////////////////////////////////////|
void line()
{
SAR0 = iSAR(NULL, 0, Par.sar, Par.shag, 0);
int cnt = 0;
for (int i=0; i < Bars; i++) {
double SAR = iSAR(NULL, 0, Par.sar, Par.shag, i);
if (SAR0 > Close[0]) {
if (SAR < Close[i]) break;
}
if (SAR0 < Close[0]) {
if (SAR > Close[i]) break;
}
cnt++;
}
if(cnt>1){
SARs = iSAR(NULL, 0, Par.sar, Par.shag, cnt);
SARn = iSAR(NULL, 0, Par.sar, Par.shag, cnt-1);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////|
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
///////////////////////////////////////////////////////////////////////////////////////////////|
//========== * Timecontrol * =============
int timecontrol()
{
if(((Hour()>=0 && Hour()<=stoptime-1) || (Hour()>=starttime && Hour()<=23)) && starttime>stoptime){
return(True);}
if ( (Hour()>=starttime && Hour()<=stoptime-1) && starttime<stoptime){
return(True);}
if(Times==False){ return(True);}
return(0);
}
///////////////////////////////////////////////////////////////////////////////////////////////|
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|
///////////////////////////////////////////////////////////////////////////////////////////////|
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
---