ytg_Multi_Stoch

Author: Copyright � 2009, Yuriy Tokman
Orders Execution
It automatically opens orders when conditions are reachedChecks for the total of open orders
Indicators Used
Stochastic oscillator
0 Views
0 Downloads
0 Favorites

Profitability Reports

GBP/CAD Oct 2024 - Jan 2025
0.00 %
Total Trades 0
Won Trades 0
Lost trades 0
Win Rate 0.0 %
Expected payoff 0.00
Gross Profit 0.00
Gross Loss 0.00
Total Net Profit 0.00
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
14.00 %
Total Trades 611
Won Trades 336
Lost trades 275
Win Rate 0.55 %
Expected payoff -0.33
Gross Profit 33.60
Gross Loss -236.50
Total Net Profit -202.90
-100%
-50%
0%
50%
100%
ytg_Multi_Stoch
//+------------------------------------------------------------------+
//|                                              ytg_Multi_Stoch.mq4 |
//|                                   Copyright © 2009, Yuriy Tokman |
//|                                            yuriytokman@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Yuriy Tokman"
#property link      "yuriytokman@gmail.com"

extern bool      Use_Symbol1   = true;
extern string    Symbol1       = "EURUSD";

extern bool      Use_Symbol2   = true;
extern string    Symbol2       = "USDCHF";

extern bool      Use_Symbol3   = true;
extern string    Symbol3       = "GBPUSD";

extern bool      Use_Symbol4   = true;
extern string    Symbol4       = "USDJPY";

extern int       StopLoss      = 50;
extern int       TakeProfit    = 10;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if (Use_Symbol1==true) OpenSymbol(Symbol1); // Äëÿ ìóëüòèâàëþòíîãî
   if (Use_Symbol2==true) OpenSymbol(Symbol2); // Äëÿ ìóëüòèâàëþòíîãî
   if (Use_Symbol3==true) OpenSymbol(Symbol3); // Äëÿ ìóëüòèâàëþòíîãî
   if (Use_Symbol4==true) OpenSymbol(Symbol4); // Äëÿ ìóëüòèâàëþòíîãî   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Þðèé Òîêìàíü ,  yuriytokman@gmail.com                          |
//+----------------------------------------------------------------------------+
//|  Îïèñàíèå : Âîçâðàùàåò òîðãîâûé ñèãíàä                                     |
//+----------------------------------------------------------------------------+
 int GetSignal(string vSymbol)
   {
    double Stoch_Main_0 =iStochastic(vSymbol,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
    double Stoch_Main_1 =iStochastic(vSymbol,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
    double Stoch_Sign_0 =iStochastic(vSymbol,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);    
    double Stoch_Sign_1 =iStochastic(vSymbol,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);    
    
    int vSignal = 0;
    
    if (Stoch_Main_0<20&&Stoch_Main_1<Stoch_Sign_1&&Stoch_Main_0>Stoch_Sign_0)
    
    vSignal =+1;//up
 
    else 
    if (Stoch_Main_0>80&&Stoch_Main_1>Stoch_Sign_1&&Stoch_Main_0<Stoch_Sign_0)
    
    vSignal =-1;//down
          
    return (vSignal);
   }
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Þðèé Òîêìàíü ,  yuriytokman@gmail.com                          |
//+----------------------------------------------------------------------------+
//|  Îïèñàíèå : Îòêðûòèå ïîçèöèé                                               |
//+----------------------------------------------------------------------------+
 int OpenSymbol(string vSymbol)
   {
    double point = MarketInfo(vSymbol,MODE_POINT);   
    double bid   = MarketInfo(vSymbol,MODE_BID);
    double ask   = MarketInfo(vSymbol,MODE_ASK);
      
    if(!ExistPositions(vSymbol))
     {
   
      if(GetSignal(vSymbol)==1)
    
      OrderSend(vSymbol,OP_BUY,0.01,ask,3,bid-StopLoss*point,ask+TakeProfit*point,"yuriytokman@gmail.com",0,0,Green);
     
      if(GetSignal(vSymbol)==-1)
          
      OrderSend(vSymbol,OP_SELL,0.01,bid,3,ask+StopLoss*point,bid-TakeProfit*point,"yuriytokman@gmail.com",0,0,Red);   
     
     }   
   }
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 01.09.2005                                                     |
//|  Îïèñàíèå : Âîçâðàùàåò ôëàã ñóùåñòâîâàíèÿ ïîçèöèé                          |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    sy - íàèìåíîâàíèå èíñòðóìåíòà   (""   - ëþáîé ñèìâîë,                   |
//|                                     NULL - òåêóùèé ñèìâîë)                 |
//|    op - îïåðàöèÿ                   (-1   - ëþáàÿ ïîçèöèÿ)                  |
//|    mn - MagicNumber                (-1   - ëþáîé ìàãèê)                    |
//|    ot - âðåìÿ îòêðûòèÿ             ( 0   - ëþáîå âðåìÿ îòêðûòèÿ)           |
//+----------------------------------------------------------------------------+
bool ExistPositions(string sy="", int op=-1, int mn=-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 (mn<0 || OrderMagicNumber()==mn) {
              if (ot<=OrderOpenTime()) return(True);
            }
          }
        }
      }
    }
  }
  return(False);
}    

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---