Лента последних комментариев


0
Андрюха СПС будем стараться писать внятно :) 
avatar

Jora1973

  • 26 февраля 2017, 11:16
0
Начнем с открытия. Сейчас советник открывает бай сел плюс соответствующая сетка если цена выше ниже МА 600. Есть шаг, отступ от цены, увеличение лота и др.




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

//--- Inputs
input double  Lot         = 0.01;     // объем первого ордера
input double  MaxLot      = 100;      // максимальный лот 
input double  KLot        = 2;        // умножение лота ордеров 
input double  KStep       = 2;        // увеличение шага

input int StopLoss        = 0;        // стоплосс
input int TakeProfit      = 0;        // тейкпрофит

input int Step            = 100;      // шаг ордеров
input int Delta           = 100;      // отступ от цены

input int Expiration      = 55;       // истечение ордера в часах
input int Count           = 5;        // количество ордеров

input int Slip            = 3;        // проскальзывание
input int MAPeriod        = 600;      // период МА
input int Magic           = 123;      // магик

bool b=true,s=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

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

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)   sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)   sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lots(type),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,TimeCurrent()+Expiration*3600,clr);
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
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 || (OrderType()>=0 && type==-1)) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Лот                                                              |
//+------------------------------------------------------------------+
double Lots(int type)
  {
   double lots=Lot;
   double MaximumLot=MarketInfo(NULL,MODE_MAXLOT);
   double MinimumLot=MarketInfo(NULL,MODE_MINLOT);

   if(Lot==0) lots=AccountEquity()/(Count*2*10000);
   lots=NormalizeDouble(lots*MathPow(KLot,CountOrders(type)),2);
   if(lots>MaximumLot) lots=MaximumLot;
   if(lots<MinimumLot) lots=MinimumLot;
   return(lots);
  }
//+------------------------------------------------------------------+
//| Шаг для гридера                                                  |
//+------------------------------------------------------------------+
double Steps(int ot)
  {
   double step=Step;
   step=NormalizeDouble(Step*MathPow(KStep,CountOrders(ot)),2);
   return(step);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double ma=iMA(NULL,0,MAPeriod,0,0,0,0);

   if(Bid>ma && b)
     {
      PutOrder(0,Ask);//buy
      PutOrder(1,Bid);//sell
      
      for(int i=0; i<Count;i++)
        {
           {
            PutOrder(4,Bid+Delta*Point+Steps(4)*Point*i);//buystop
            b=false;
            s=true;
           }
        }

      if(Bid<ma && s)
        {
         PutOrder(0,Ask);//buy
         PutOrder(1,Bid);//sell
         
         for(int i=0; i<Count;i++)
           {
            PutOrder(5,Bid-Delta*Point-Steps(5)*Point*i);//sellstop
            s=false;
            b=true;
           }
        }
     }
  }
//+------------------------------------------------------------------+


avatar

AM2

  • 26 февраля 2017, 06:31
0
Шо всего три?!
15
avatar

AM2

  • 26 февраля 2017, 05:33
+2
Сделал выбор направления трала и открытия для надежности <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 

extern int    TrailingType = 0;           // 0-оба 1-тралим только бай 2-только селл
extern int    OrdersType   = 0;           // 0-оба 1-только бай 2-только селл
www.opentraders.ru/downloads/1492/
avatar

AM2

  • 26 февраля 2017, 05:22
0
Pesha Андрюха нас понимает как www.youtube.com/watch?v=AoIiM2SrkEI :D  Я просто невнятно написал ( сори :)  )1) трал в обе стороны 2) выбор направления открытия ордеров
avatar

Jora1973

  • 26 февраля 2017, 00:50
0
юзаю в ручном режиме, то есть отдельно усреднение и пирамидинг+ 3 сову закрывашку,).Метод не самый эффективный(.
avatar

Names

  • 26 февраля 2017, 00:49
0
Вот пример, только приходиться отдельно ручками присматривать отдельно по пирамидингу и по усреднению.Белым квадратом выделил, где у нас не сработали стоповые ордера по усреднению, т.к не было отката на величину дельта.
avatar

Names

  • 26 февраля 2017, 00:35
0
«Протоколы могут подкинуть информацию» Ага… «Туман и гололёд»:) 
avatar

Genri

  • 26 февраля 2017, 00:18
0
Шо всего три?! Ну, с Масленицей.
avatar

Genri

  • 25 февраля 2017, 23:49
0
Набросаю завтра.
avatar

AM2

  • 25 февраля 2017, 22:12
0

Вот пример как примерно должно работать.
avatar

Names

  • 25 февраля 2017, 18:08
0
Я на мол предлагал более 200 баксов, но чет прогеры там не кудышные не кто браться не хочет.Либо денег надо больше, либо пишут типа слишком сложно все это реализовать., но там задание в разы было сложней по гибкости.
Там есть основной советник залил на хостер, возможно ли к нему просто добавить пирамиду стоп ордерам( чтобы можно было задавать коэф. соотношение лотности пирамиды к усреднению)?
avatar

Names

  • 25 февраля 2017, 18:05
+1
для своей ТС применил три закономерности — и это работает… не 100% но близко к этому ))
Ищущий да обрящет.
avatar

optinskijj

  • 25 февраля 2017, 16:27
0
Что «По чём?» Написано же: БЕСПЛАТНО!!!
avatar

mit-system

  • 25 февраля 2017, 16:02
+1
Повторю своё любимое изречение, Александра Элдера.-
«В океане хаоса рынка, мы ищем островки порядка.»
И чем больше островков тебе известно, тем больше у тебя шансов не утонуть в этом бушующем океане.
avatar

oyama

  • 25 февраля 2017, 14:03
0
Андрей, можно добавить сразу два направления тралить?3 параметр.
avatar

Pesha

  • 25 февраля 2017, 13:10
0
Предыдущий прогноз по евре, провалился.
Прогноз по фунту, технически выполнен, цена на этой недели, закрылась выше предыдущей.
Прогноз по рублю, пока что оправдывает ожидания.
avatar

ars2005tron

  • 25 февраля 2017, 10:37
0
Андрюха СПС!!! Как всегда биг скорость*good* 
avatar

Jora1973

  • 25 февраля 2017, 10:06
0
Да так частично он закрывается. Правда вылезает косяк с усреднением. После выставления 3-го ордера и частичного удаления второго ордера моментально выставляется 4-ый ордер лотом 0.02. И непонятно то ли это из за тестера, то ли из за логики блока усреднения.(блок усреднения стандартный) Смотрю в результаты и такое ощущение что второй ордер сначала удаляется полностью а потом тестер по этой же цене выставляет новый ордер с лотом 0.01 (как бы частично закрылся) Ну и получается Step 2-го ордера то пройден, он и выставляет 4-ый ордер лотом 0.02. Но почему? Ведь есть третий ордер и Step должен считаться от него. Я конечно
изловчился изменил усреднение, добавил переменных и как бы работает. Но я не уверен будет ли это работать в реале — может кодом я просто исправил проблему
тестера. Вообщем буду смотреть дальше после выходных.
avatar

vikas

  • 25 февраля 2017, 09:32
Начать торговлю с Альпари