0
скиньте индикатор. может уже делал
avatar

AM2

  • 12 мая 2020, 18:23
0
интересный усреднитель :) 



www.opentraders.ru/downloads/2656/
avatar

AM2

  • 11 мая 2020, 16:20
0
на 20-е
avatar

AM2

  • 11 мая 2020, 14:22
0
для проверки изменял сигнал и настройки под текущую ситуацию. работает:

avatar

AM2

  • 11 мая 2020, 14:10
0
я попробовал начать кодить. вывел все в 3 столбца, но нужно еще отлаживать и значения суммировать. конца не видно не ко мне.




//+------------------------------------------------------------------+
//|                                                         Stat.mq4 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

string s="";

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   Comment("");

   for(int i=0; i<2; i++)
     {
      double lo=iLow(NULL,PERIOD_D1,i);
      double hi=iHigh(NULL,PERIOD_D1,i);

      s+="\n "+"\n "+"High "+(string)i+" = "+(string)hi+" Low "+(string)i+" = "+(string)lo+"\n ";
      
      for(int j=0; j<24; j++)
        {

         s+="\n "+(string)j;
         if(High[j]==hi)
           {
            s+=" "+(string)1;
           }
         else
            s+=" "+(string)0;

         if(Low[j]==lo)
           {
            s+=" "+(string)1;
           }
         else
            s+=" "+(string)0;
        }
     }
   Comment(s);
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 10 мая 2020, 21:32
0
на 19-е
avatar

AM2

  • 10 мая 2020, 20:15
0
я вот сейчас смотрю на задание и у меня нет никакой ясности что смотрим, что складываем и т.д. а про то смогу или не смогу речи вообще не идет. поставлю на 18-е
avatar

AM2

  • 10 мая 2020, 12:30
+1
Написал функцию. Дальше надо уже онлайн отлаживать. На 15-е




//+------------------------------------------------------------------+
//|                                                      Counter.mq4 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

string symbols[] = {"EURUSD","EURUSD","EURUSD","GBPUSD","GBPUSD","USDJPY","USDCHF","USDCAD"}; // база
string symb[]; // массив

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|  Проверка наличия символа в массиве                              |
//+------------------------------------------------------------------+
bool Proverka(string s)
  {
   for(int i=0; i<ArraySize(symb); i++)
     {
      if(s==symb[i])
         return(true);
     }
   return(false);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   /*

   1. берем 1-й символ c базы
   2. заносим его в массив
   3. берем 2-й символ
   4. проверяем есть ли он в массиве
   5. если нет заносим

   */

   ArrayResize(symb,1);

   symb[0]=symbols[0];

   for(int i=0; i<ArraySize(symbols); i++)
     {
      if(!Proverka(symbols[i]))
        {
         ArrayResize(symb,ArraySize(symb)+1);
         symb[ArraySize(symb)-1]=symbols[i];
        }
     }

   Comment("\n Count: ",ArraySize(symb));
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 10 мая 2020, 11:46
0
скрины для наглядности
avatar

AM2

  • 9 мая 2020, 10:25
0
На скриншоте немного не так
конечно не так, там все в динамике будет. можно даже в тестере прогнать посмотреть, нанести индикаторы
avatar

AM2

  • 9 мая 2020, 10:22
0
вот допустим открыты:

евро 0.1
евро 0.1
евро 0.1

фунт 0.1
фунт 0.1

ена 0.1
ена 0.1
ена 0.1

какой будет алгоритм подсчета числа пар? я пока не представляю. а за такие я не берусь когда сразу решение не просматривается
avatar

AM2

  • 9 мая 2020, 10:19
0
Вот например, при суперлось= 100 и суперязь= -50, слева 2 сделки правильно увеличил стоп и уменьшил тейк, а справа 2 сделки не обратил внимания, что это нужно сделать. Это происходит и на баевых, и на селовых сделках.


так не может быть там уменьшил здесь нет. советник действует четко по заданному алгоритму. проверьте возможно у вас осталась предыдущая версия.

вот еще обновленный код:


//+------------------------------------------------------------------+
//|                                                      Candles.mq4 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 100;      // супер лось
extern int TakeProfit    = -50;      // супер язь
extern int Delta         = 100;      // тело свечи 1-й свечи
extern int Sigma         = 200;      // тела 2-х свечей
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type=-1)
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || type==-1)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderProfit()>0)
               break;
            if(OrderProfit()<0)
              {
               lot=OrderLots()*KLot;
               break;
              }
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int r=0;

   if(t!=Time[0])
     {
      double sl=0;
      double tp=MathAbs(Close[1]-Open[2])+(MathAbs(Close[1]-Open[2])*TakeProfit*0.01);

      if(Low[2]<Low[3] && Close[1]-Close[2]>Delta*_Point && Close[2]-Close[3]>Delta*_Point && Close[1]-Close[3]>Sigma*_Point)
        {
         sl=(Close[1]-Low[2])+(Close[1]-Low[2])*StopLoss*0.01;
         r=OrderSend(NULL,0,Lot(),NormalizeDouble(Ask,_Digits),Slip,NormalizeDouble(Ask-sl,_Digits),NormalizeDouble(Bid+tp,_Digits),"",Magic,0,Blue);
        }
      if(High[2]>High[3] && Close[2]-Close[1]>Delta*_Point && Close[3]-Close[2]>Delta*_Point && Close[3]-Close[1]>Sigma*_Point)
        {
         sl=(High[2]-Close[1])+(High[2]-Close[1])*StopLoss*0.01;
         r=OrderSend(NULL,1,Lot(),NormalizeDouble(Bid,_Digits),Slip,NormalizeDouble(Bid+sl,_Digits),NormalizeDouble(Ask-tp,_Digits),"",Magic,0,Red);
        }
      t=Time[0];
     }
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 9 мая 2020, 10:02
0
когда визуально смотрел с одним индикатором не вырисовывалось. сейчас полностью закодил, поставил стрелки:



www.opentraders.ru/downloads/2653/
avatar

AM2

  • 9 мая 2020, 09:42
0
Посмотрел в код своим дилетенским взглядом, понял вроде, что свечи, которые я на скринах называл 0,1,2, вы называете 1,2,3. Может тут путаница произошла?


это вы так называете, а для машины нумерация от последней
avatar

AM2

  • 9 мая 2020, 09:22
0
Здравствуйте Андрей.Советник установил, на графике улыбается но не открывает ни одного ордера.В тестере тоже молчок.В журнале только запись что советник успешно установлен (successfully loaded) и больше ничего.Посмотрите пожалуйста.


логи скрины настройки
avatar

AM2

  • 8 мая 2020, 21:26