0
Советник выставляет 2 ордера на указанном расстоянии от цены, при срабатывании одного ордера другой удаляется и ставится снова 2 ордера: www.opentraders.ru/downloads/900/



avatar

AM2

  • 20 октября 2015, 14:36
0
Вот например на рисунке трендвейв и стохастик, один в один.

avatar

AM2

  • 20 октября 2015, 13:21
0
Индикатор декомпилированый. Предлагаю заменить на любой стандартный осциллятор. По сути будет все тоже самое, но проще работать, оптимизировать и д.р.
avatar

AM2

  • 20 октября 2015, 13:13
0
Как я понял при срабатывании стоповика, противоположный удаляется а новая пара открывается со смещением в зависимости от открытого ордера. Так?
В ТЗ не сказано как работаем с лимитниками.
avatar

AM2

  • 20 октября 2015, 13:01
0
Вот мой скайп, стучитесь. andrew.am2
avatar

AM2

  • 19 октября 2015, 20:29
0
Этих записей недостаточно, потому что в конце у меня тоже, а советник работает нормально.



avatar

AM2

  • 19 октября 2015, 19:59
0
Посмотрю завтра.
avatar

AM2

  • 19 октября 2015, 19:49
0
Чтобы понять в чем дело, мне нужно как можно больше информации. Для начала:

1. Записи на вкладках журнал и эксперты.
2. Демо или тестер?
3. Брокер и тип счета
avatar

AM2

  • 19 октября 2015, 17:36
0
Cейчас все исправим :) 
avatar

AM2

  • 19 октября 2015, 11:44
0
Завтра переделаю. Только машки вручную придется бросать или шаблон для наглядности.
avatar

AM2

  • 18 октября 2015, 21:42
0
Вы смотрели в базе подобные эксперты?
avatar

AM2

  • 18 октября 2015, 17:40
0
Посмотрите здесь в базе были подобные, если не найдете сделаю.
www.opentraders.ru/downloads/
avatar

AM2

  • 17 октября 2015, 19:46
+1
Можно попробовать сделать для начала максимально упрощенный вариант. Я посмотрел какой объем работы выполнила Оксана, поэтому и отказался.
avatar

AM2

  • 16 октября 2015, 16:29
0
Вы могли бы сделать чтобы stop loss можно было бы выставлять не только по пунктам но и по % ФИБО — + отступ, а тейк профит можно было бы выставлять по расширения фибо — + отступ.


Чем это таким проценты по фибо будут отличаться от обычных пунктов, позвольте полюбопытствовать? Нужна экзотика? *pontorez* 
avatar

AM2

  • 16 октября 2015, 13:53
0
Ждет.



//+------------------------------------------------------------------+
//|                                                    PipsToday.mq4 |
//|                                              Copyright 2014, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, AM2"
#property link      "http://www.forexsystems.biz"
#property description "100 Pips Today expert advisor"

#define MAGIC  20141109
//--- Inputs
extern double StopLoss     = 500;
extern double TakeProfit   = 500;
extern double BULevel      = 300;
extern double TrailingStop = 300;
extern int    Slip         = 30;
extern double Lots         = 0.1;
//----
extern int BPeriod        = 34;
extern int APeriod        = 3;
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   int    res;
//--- get indicators value
   double PipsTodayYellow=iCustom(Symbol(),0,"100pipstodayscalper",BPeriod,APeriod,0,1);
   double PipsTodayGreen=iCustom(Symbol(),0,"100pipstodayscalper",BPeriod,APeriod,1,1);

//--- sell conditions
   if(PipsTodayYellow>PipsTodayGreen && (LastDealType()==1 || LastDealType()==0))
     {
      res=OrderSend(Symbol(),OP_SELL,Lots,fND(Bid),Slip,fND(Bid+StopLoss*Point),fND(Bid-TakeProfit*Point),"",MAGIC,0,Red);
      return;
     }
//--- buy conditions
   if(PipsTodayGreen>PipsTodayYellow  && (LastDealType()==2 || LastDealType()==0))
     {
      res=OrderSend(Symbol(),OP_BUY,Lots,fND(Ask),Slip,fND(Ask-StopLoss*Point),fND(Ask+TakeProfit*Point),"",MAGIC,0,Blue);
      return;
     }
//---
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void ClosePos()
  {
//--- get indicators value 
   double PipsTodayYellow=iCustom(Symbol(),0,"100pipstodayscalper",BPeriod,APeriod,0,1);
   double PipsTodayGreen=iCustom(Symbol(),0,"100pipstodayscalper",BPeriod,APeriod,1,1);
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
         if(PipsTodayYellow>PipsTodayGreen)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slip,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(PipsTodayGreen>PipsTodayYellow)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,Slip,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
     }
//---
  }
//+------------------------------------------------------------------+
double fND(double d,int n=-1)
  {
   if(n<0) return(NormalizeDouble(d, Digits));
   return(NormalizeDouble(d, n));
  }
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() || OrderMagicNumber()==MAGIC)
           {
            if(OrderType()==OP_BUY)
              {
               if(TrailingStop>0)
                 {
                  if(Bid-OrderOpenPrice()>TrailingStop*Point)
                    {
                     if(OrderStopLoss()<Bid-TrailingStop*Point)
                       {
                        mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                        return;
                       }
                    }
                 }
              }
            if(OrderType()==OP_SELL)
              {
               if(TrailingStop>0)
                 {
                  if((OrderOpenPrice()-Ask)>TrailingStop*Point)
                    {
                     if((OrderStopLoss()>(Ask+TrailingStop*Point)) || (OrderStopLoss()==0))
                       {
                        mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                        return;
                       }
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
void BU()
  {
   bool m;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() || OrderMagicNumber()==MAGIC)
           {
            if(OrderType()==OP_BUY)
              {
               if(OrderOpenPrice()<=(Bid-(BULevel+20)*Point) && OrderOpenPrice()>OrderStopLoss())
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+20*Point,OrderTakeProfit(),0,Green);
                  return;
                 }
              }
            if(OrderType()==OP_SELL)
              {
               if(OrderOpenPrice()>=(Ask+(BULevel+20)*Point) && OrderOpenPrice()<OrderStopLoss())
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-20*Point,OrderTakeProfit(),0,Green);
                  return;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int LastDealType()
  {
   int type=0;
   if(OrdersHistoryTotal()==0)
     {
      type=0;
     }
   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderType()==OP_BUY)
        {
         type=1;//buy  
        }
      if(OrderType()==OP_SELL)
        {
         type=2;//sell  
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(OrdersTotal()<1) OpenPos();
   else ClosePos();

   if(BULevel!=0) BU();
   if(TrailingStop!=0) Trailing();
//---
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 16 октября 2015, 13:42
0
Последние работы Михаила были выполнены по цене 84,85,70,136 долларов и объем работы в них был значительно ниже чем в обсуждаемом варианте. Опытный разработчик вряд ли возьмется за заказ ниже его реальной стоимости.
А что касается Оксаны, по моим наблюдениям, она тоже себе цену знает.
avatar

AM2

  • 16 октября 2015, 02:57
0
Обратите внимание, что в заказе указана желаемая стоимость: «20 — 30 USD»
Значит те, кто откликнулся готовы за эту стоимость выполнять за исключением тех, кто указал свою цену.


Когда цена не указывается, это означает, что готовы выполнить но окончательная цена будет обсуждаться.
avatar

AM2

  • 16 октября 2015, 01:35
0
А можно, сделать тоже самое, только 4ох знак?

Для 4-х знака 1 нолик в переменных убираете и все.
avatar

AM2

  • 15 октября 2015, 22:15