0
Подскажите, можно ли добавить в советник allcandle увеличение лота на ордер который ушел в просадку именно нужно чтобы не через заданное количество пунктов, а именно с новой свечи!!!

Это как это?

И еще по возможности увеличение лота через заданное количество свечей!!!


И это? *???*  *think* 
avatar

AM2

  • 5 августа 2015, 15:16
0
Спасибо Андрей а добавить одно условие можно на отбой от верхней границы и нижней границы индикатора TMADist.mq4 но с фильтром TrendWave.mq4


Уважаемый Андрей можно ли сделать чтобы TrendWave.mq4 отключать в настройках?


Андрей конечно если возможно такое условие и если можно убрать фильтр TrendWave.mq4 и просто сделки по первому условию то есть пробой и возврат и вход в сделку но параметром разбега и дельтой


Что из этого оставляет а что убираем?
avatar

AM2

  • 5 августа 2015, 15:12
0
C фильтром сделки очень редкие. Добавил возможность отключать TrendWave.

extern int TrendWave  = 0;  //0-выкл. 1-вкл.

www.opentraders.ru/downloads/790/

avatar

AM2

  • 5 августа 2015, 09:34
0
Получается что несколько свечей закрылись на определенном расстоянии от границы?
avatar

AM2

  • 4 августа 2015, 16:27
0
Покажите на скрине отбой?
avatar

AM2

  • 4 августа 2015, 15:39
0
Сделки с таким условием будут достаточно редкими:
www.opentraders.ru/downloads/790/

avatar

AM2

  • 4 августа 2015, 14:14
0
сегодня буду смотреть
avatar

AM2

  • 4 августа 2015, 12:49
0
В настройках можете выставить 0.03, если такой позволяет брокер.


extern double Lots = 0.03;
avatar

AM2

  • 4 августа 2015, 10:24
0
Если нужно, буду продолжать рабочий вариант с массивом строк в самом эксперте.
avatar

AM2

  • 4 августа 2015, 09:47
0
Сейчас сделка бай закрылась и сразу открылась продажа. Завтра еще понаблюдаю.



avatar

AM2

  • 3 августа 2015, 22:19
0
Вы предлагаете не файл а в тело бота список дат засунуть!?
а где цикл? как будет осуществлен перебор всех элементов массива то?
res=OrderSend поясните пожалуйста, как ордер открывается если OrderSend не выполняется а передается res


По другому не читалось. Если есть другие примеры, покажите посмотрю. Пока реализовано для одной строчки.
avatar

AM2

  • 3 августа 2015, 21:44
0
Из массива со строками уже можно читать информацию. Основа есть:




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

#include <stdlib.mqh>

//--- Inputs
extern int StopLoss    = 500;
extern int TakeProfit  = 500;
extern int Slip        = 30;
extern double Lots     = 0.1;

string d[3]=
  {
   "2015.07.27 00:20	Buy",
   "2015.07.14 23:00	Buy",
   "2015.07.18 21:00	Buy"
  };

extern int    Magic=111;

int res=0,b=0,s=0,t=0;
string str,date;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

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

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void LoadString()
  {
//--- прочитаем строку
   str=d[0];
//--- если есть подстрока бай или селл
   if(StringFind(str,"Buy",0)>0)b=1;
   if(StringFind(str,"Sell",0)>0)s=2;
   date=StringSubstr(str,0,StringFind(str,"Buy",0)-1);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void LoadFile()
  {
//--- откроем файл
   ResetLastError();
   int h=FileOpen("load.txt",FILE_READ|FILE_TXT);
   if(h!=INVALID_HANDLE)
     {
      int    str_size;
      //--- прочитаем данные из файла
      while(!FileIsEnding(h))
        {
         //--- узнаем сколько символов использовано для записи 
         str_size=FileReadInteger(h,INT_VALUE);
         //--- прочитаем строку
         str=FileReadString(h,str_size);
         //--- если есть подстрока бай
         if(StringFind(str,"buy",0)>0)b=1;
         if(StringFind(str,"sell",0)>0)s=2;
         date=StringSubstr(str,0,StringFind(str,"buy",0));
         //--- закроем файл
         FileClose(h);
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   LoadString();
  
   if(b==1 && t==0 && TimeCurrent()==StringToTime(date))
     {
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",Magic,0,Blue);
      t=1;
     }

   if(s==1 && t==0)
     {
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",Magic,0,Red);
      t=1;
     }

   Comment("\n"+str,
           "\n b: ",b,
           "\n date: ",date);

  }
//+------------------------------------------------------------------+



avatar

AM2

  • 3 августа 2015, 18:18
0
Я предупреждал, что не нужно торопиться. Файл не читается в тестере. Если только пробовать таким образом:

string d[]={"2015.07.08 00:24	Buy", "2015.07.14 23:00	Buy", "2015.07.18 21:00	Buy"};
avatar

AM2

  • 3 августа 2015, 17:41
0
блин! обидно!!! ладно тогда я сделаю дату как надо по вашему примеру (2015.07.25 12:30), скоро скину. Существование одной и нескольких сделок крайне важно, так как прогнозисту экстросенсу возможно с утра приснится другая картина! а старая еще не отработала-)
Еще раз спасибо за помощь.


для начала переделать штук 5 дат, если заработает нормально, можно и остальные.
avatar

AM2

  • 3 августа 2015, 16:00
0
А как мне помочь Вам, чтобы не надо было караулить?

Значения верхнего и нижнего фракталов выведены на экран(верхний левый угол), нужно понаблюдать как выполняется условие на покупку и продажу.

Сейчас продажу закрывает как положено и сразу покупает. А когда покупка закрывается, тут еще смотреть нужно. Новый файлик. www.opentraders.ru/downloads/794/

avatar

AM2

  • 3 августа 2015, 15:38
0
Вот так примерно :) 

avatar

AM2

  • 3 августа 2015, 15:24
0
Я до этого тоже почти не занимался, чтением из файла. Набросал по справке и примерам кода с мкл.
avatar

AM2

  • 3 августа 2015, 13:45
0
Зачем закрыто торговля если в файле

Набросок потому что.
avatar

AM2

  • 3 августа 2015, 13:43
0
Пропустил момент, когда фрактал посчитался, но у меня тоже через бар открылась сделка. Нужно караулить, когда фрактал сформируетмя, смотреть какое значение у него в этот момент, какое значение МА.

avatar

AM2

  • 3 августа 2015, 13:37
0
Сейчас советник читает строку из файла, выводит ее на экран, запоминает в переменные направление позиции, выводит на экран подстроку со временем.




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

#include <stdlib.mqh>

//--- Inputs
extern int StopLoss    = 500;
extern int TakeProfit  = 500;
extern int Slip        = 30;
extern double Lots     = 0.1;

extern int    Magic=111;
int t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

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

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int res=0,b=0,s=0;
   string str,date;

//--- откроем файл
   ResetLastError();
   int h=FileOpen("load.txt",FILE_READ|FILE_TXT);
   if(h!=INVALID_HANDLE)
     {
      int    str_size;
      //--- прочитаем данные из файла
      while(!FileIsEnding(h))
        {
         //--- узнаем сколько символов использовано для записи 
         str_size=FileReadInteger(h,INT_VALUE);
         //--- прочитаем строку
         str=FileReadString(h,str_size);
         //--- если есть подстрока бай
         if(StringFind(str,"buy",0)>0)b=1;
         if(StringFind(str,"sell",0)>0)s=1;
         date=StringSubstr(str,0,StringFind(str,"buy",0));
         //--- закроем файл
         FileClose(h);
        }

      if(b==1 && t==0 && TimeCurrent()>StringToTime(date))
        {
         //res=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",Magic,0,Blue);
         t=1;
        }

      if(s==1 && t==0)
        {
         res=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",Magic,0,Red);
         t=1;
        }

      Comment("\n"+str,
              "\n b: ",b,
              "\n date: ",date);

     }
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 3 августа 2015, 13:17