0
По индикатору закрывает ордера только если есть открытый ордер, а надо что бы закрывал все ордера после пересечения МА если даже нет открытого ордера.


Закрывает позы и удаляет лимитники после пересечения МА. Что именно неверно?

avatar

AM2

  • 27 ноября 2015, 08:56
0
Тестировал на демо. Посмотрите может у вас не та версия стоит. Скачайте последнюю с базы.
avatar

AM2

  • 27 ноября 2015, 08:30
+1
осталось только сделать сигнал 1 раз в день.
может доделайте? пожалуйста

Все готово, жду только соблюдения условий: zakaz.opentraders.ru/25597.html
avatar

AM2

  • 27 ноября 2015, 05:10
0
Поможет ли-)

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

AM2

  • 27 ноября 2015, 02:07
0
Что конкретно вы имеете ввиду, можно нагляднее на скринах?
avatar

AM2

  • 27 ноября 2015, 02:01
0
Сейчас стоит закрытие по обратному сигналу.

avatar

AM2

  • 27 ноября 2015, 01:54
0
Терпение имейте

И внимательно читайте условия :) 
zakaz.opentraders.ru/25597.html
avatar

AM2

  • 27 ноября 2015, 01:51
+1
Я попробовал вставить и при проверке получил 6 ошибок. Либо я не правильно вставил, либо не подходит.


Просто нужно понимать что делаешь. У функции есть внешние входные переменные.
avatar

AM2

  • 27 ноября 2015, 01:46
0
А вот 5и летний который-уж СЛИШКОМ РОВНЫЙ север

Там если много лотов наберет и не туда мотнет, то все хана! :D 
avatar

AM2

  • 26 ноября 2015, 18:07
0
А то у меня вообще перестал открывать сделки(


Так не пишите никогда, это мне ни о чем не говорит. Нужны записи в журнале, на вкладке эксперты, скрины с графика в момент когда нет сделки. Я вам уже писал об этом.
avatar

AM2

  • 26 ноября 2015, 17:31
0
Только что поставил на график, сразу открыл сделку.

avatar

AM2

  • 26 ноября 2015, 17:28
0
Такая функция устроит?



//+------------------------------------------------------------------+
   double Lot()
     {
      double lot;
      if(OrdersHistoryTotal()==0)
        {
         lot=Lots;
        }
      if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderProfit()>0)
           {
            lot=Lots;
           }
         if(OrderProfit()<=0)
           {
            lot=OrderLots()*KLot;
           }
        }
      if(lot>MaxLot)lot=MaxLot;
      return(lot);
     }
//+------------------------------------------------------------------+
avatar

AM2

  • 26 ноября 2015, 17:10
0
Файлик в тегах кода сделайте, а иначе кго не восстановишь в компиляторе.
avatar

AM2

  • 26 ноября 2015, 17:04
0
У меня сейчас стоят как раз эти условия.
avatar

AM2

  • 26 ноября 2015, 16:53
0
Не совсем понятное ТЗ. Можете на скринах все показать?
avatar

AM2

  • 26 ноября 2015, 15:24
0
Торгует в определенное время и раз в день: www.opentraders.ru/downloads/890/

avatar

AM2

  • 26 ноября 2015, 12:56
0
Делайте с разными магиками, тогда не удаляет.

avatar

AM2

  • 26 ноября 2015, 12:34
0
Я еще доработал советник. Красиво рисует за 5 лет :D 




//+------------------------------------------------------------------+
//|                                                  HedgeMartin.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

//--- Inputs
extern int    Delta          = 100;       // дельта
extern double Loss           = 9000;      // убыток в валюте
extern double Profit         = 10;        // профит в валюте
extern double Lots           = 0.01;      // лот
extern double KLot           = 2;         // увеличение лота
extern double MaxLot         = 10;        // максимальный лот
extern int    Slip           = 30;        // проскальзывание
extern int    Magic          = 123;       // магик

double BuyStopPrice=0,SellStopPrice=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

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

  }
//+------------------------------------------------------------------+
int CountTrades()
  {
   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()==OP_BUY || OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+  
int LastOrderType()
  {
   int type=0;
   if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderType()==OP_BUY)  type=1; //sell
         if(OrderType()==OP_SELL) type=2; //buy
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+  
void CloseAll()
  {
   bool cl=true;
   double pBid,pAsk;

   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            pBid=MarketInfo(OrderSymbol(),MODE_BID);
            pAsk=MarketInfo(OrderSymbol(),MODE_ASK);
            if(OrderType()==OP_BUY) cl=OrderClose(OrderTicket(),OrderLots(),fND(pBid),Slip,Blue);
            if(OrderType()==OP_SELL) cl=OrderClose(OrderTicket(),OrderLots(),fND(pAsk),Slip,Red);
           }
        }
     }
  }
//+------------------------------------------------------------------+
double fND(double d,int n=-1)
  {
   if(n<0) return(NormalizeDouble(d, Digits));
   return(NormalizeDouble(d, n));
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double AllProfit()
  {
   double profit=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) profit+=OrderProfit()+OrderSwap()+OrderCommission();
           }
        }
     }
   return(profit);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void DelOrder()
  {
   bool del;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUYSTOP)  del=OrderDelete(OrderTicket());
            if(OrderType()==OP_SELLSTOP) del=OrderDelete(OrderTicket());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int LastDealResult()
  {
   int result=0;
   if(OrdersHistoryTotal()==0)
     {
      result=0;
     }
   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderProfit()>0)
           {
            result=1;//tp  
           }
         if(OrderProfit()<0)
           {
            result=2;//sl  
           }
        }
     }
   return(result);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   if(CountTrades()>0) lot=NormalizeDouble(Lots*MathPow(KLot,CountTrades()),2);
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }  
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
// торгуем
   int res=0,i=0;
   double tp=0,bid=0,ask=0,pr=0;

   bid=MarketInfo(Symbol(),MODE_BID);
   ask=MarketInfo(Symbol(),MODE_ASK);

// открытие первого ордера по условию
   if(CountTrades()<1)
     {
      //---- buy 
      if(Open[1]<Close[1] && Open[0]>Close[1])
        {
         res=OrderSend(Symbol(),OP_BUY,Lot(),NormalizeDouble(ask,Digits),Slip,0,0,"",Magic,0,Blue);
         BuyStopPrice=ask;
         SellStopPrice=ask-Delta*Point;
         return;
        }

      //---- sell   
      if(Open[1]>Close[1] && Open[0]<Close[1])
        {
         res=OrderSend(Symbol(),OP_SELL,Lot(),NormalizeDouble(bid,Digits),Slip,0,0,"",Magic,0,Red);
         SellStopPrice=bid;
         BuyStopPrice=pr=bid+Delta*Point;
         return;
        }
     }

// открытие последующих ордеров
   if(CountTrades()>0)
     {
      if(LastOrderType()==1)
        {
         pr=SellStopPrice;
         res=OrderSend(Symbol(),OP_SELLSTOP,Lot(),NormalizeDouble(pr,Digits),Slip,0,0,"",Magic,0,Red);
         return;
        }

      if(LastOrderType()==2)
        {
         pr=BuyStopPrice;
         res=OrderSend(Symbol(),OP_BUYSTOP,Lot(),NormalizeDouble(pr,Digits),Slip,0,0,"",Magic,0,Blue);
         return;
        }
     }

   if(LastDealResult()==1)DelOrder();
   if(AllProfit()>=Profit || AllProfit()<=-Loss)
     {
      CloseAll();
      DelOrder();
     }

   Comment("\n Profit: ",DoubleToString(AllProfit(),2),
           "\n Last Order Type: ",LastOrderType(),
           "\n Count Trades: ",CountTrades());
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 26 ноября 2015, 11:58
0
Поставлю сейчас на отладку.
avatar

AM2

  • 26 ноября 2015, 09:03
0
Кроет и стоп и тейк частями: www.opentraders.ru/downloads/872/

avatar

AM2

  • 26 ноября 2015, 08:19