ell75

 
Уровень 7

  Торгую в компаниях:

  Моя торговля


График торгового счета ell75


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



советник на 3 пары МА

Напишите пожалуйста советника с тремя парами МА
1я пара НАПРАВЛЯЮЩАЯ с параметрами 100,200
2я пара ведущая 50,100
3я пара ведущая 50,200
сама стратегия; вход от направляющей ма + ведущая, закрытие ордера по ведущему противоположному сигналу ( направляющей или ведущей) когда следует повторный сигнал по направлению направляющей ма открываем ордер и так далее ведём сделки
описала и нарисовала всё в скринах со всеми параметрами ( ВАЖНО ВСЕ УКАЗАННЫЕ В СКРИНАХ ПАРАМЕТРЫ )я голову поломала над ними ))
в советнике т.п, с.л, трал ( вкл и выкл) для каждой пары ма и м\м.
индикатор ваш. тоже прилогаю тут. очень надеюсь что у вас получится. спасибо, если что то будет не понятно спрашивайте MA2_Signal_ver2.mq4 (6 Kb) индикатор




  • 0
  • Просмотров: 2954
  • 30 июня 2016, 21:02
  • ell75
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Пожалуйста сделайте советник стрелочник на CCI
30 июня 2016
02 июля 2016

Брокер для ваших роботов, 15 лет на рынке

Комментарии (35)

+
0
PS. работаем только с 1 ордером!
avatar

  7  ell75 Автор Сообщений: 195

  • 30 июня 2016, 21:07
+
0
Я сейчас бросил на график стандартные машки, они полностью совпали с индикатором. Это будет советник по пересечению МА, а мы уже делали такой с 3-мя машками.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 30 июня 2016, 22:28
+
0
Кстати вот он: www.opentraders.ru/downloads/809/
И топик незабываемый :)  zakaz.opentraders.ru/26593.html
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 30 июня 2016, 22:33
+
0
нет просто с 3 ма это совсем не то. очень вас прошу именно с 3 парами ма со своими параметрами каждая. можно в одном советнике сделать 3 пары ма?
avatar

  7  ell75 Автор Сообщений: 195

  • 30 июня 2016, 23:05
+
0
для убедительности поставьте этот индикатор 3 раза с каждым параметром как у меня в скрине и посмотрите в чём разница
avatar

  7  ell75 Автор Сообщений: 195

  • 30 июня 2016, 23:08
+
0
Поставил, 3 машки они и в африке 3 машки :) 

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 30 июня 2016, 23:43
+
0
а сигналы они так же дают как 3 пары ?))
avatar

  7  ell75 Автор Сообщений: 195

  • 1 июля 2016, 10:07
+
0
Скачайте советник по ссылке выше, поставьте МА 50,100 и 200 и увидите.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 1 июля 2016, 10:20
+
0
ну вот я сново его протестировала для вас, сделала скрин его работу неккоректную. он ужасно и не правильно работает, потому что задача у 3 ма совсем другая. на скрине я поставила свой шаблон с 3 парами ма и обозначила где он должен открывать и закрывать ордера, там же видно где открывал и закрывал сов. 3 ма
avatar

  7  ell75 Автор Сообщений: 195

  • 1 июля 2016, 11:53
+
0
а в моём задании стоит задача, если в напраляющем движении появляется противоположный сигнал в любой из пары ма, ордер закрываем, а когда появляется снова сигнал в ведущей паре ма из направляющей то снова берём ордер и так далее.
avatar

  7  ell75 Автор Сообщений: 195

  • 1 июля 2016, 12:04
+
0
хорошо
avatar

  7  ell75 Автор Сообщений: 195

  • 1 июля 2016, 12:07
+
0
Вечером еще сам проверю.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 1 июля 2016, 11:59
+
0
Вот переписанный вариант, вход когда 3 вряд, выход 50><100. Если наложить, один в один входы выходы.




//+------------------------------------------------------------------+
//|                                                          3MA.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property description "Simple expert advisor"

//--- Inputs

extern int    MA1Period     = 50;
extern int    MA2Period     = 100;
extern int    MA3Period     = 200;

extern int    StopLoss      = 500;
extern int    TakeProfit    = 500;
extern int    Slip          = 30;
extern int    TrailingStop  = 0;
extern double Lots          = 0.1;
extern int    Magic         = 123;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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,NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//| Закрытие позиции по типу ордера                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   double MA1=iMA(NULL,0,MA1Period,0,1,0,1);
   double MA2=iMA(NULL,0,MA2Period,0,1,0,1);
   double MA3=iMA(NULL,0,MA3Period,0,1,0,1);
   double MA12=iMA(NULL,0,MA1Period,0,1,0,2);
   double MA22=iMA(NULL,0,MA2Period,0,1,0,2);
   double MA32=iMA(NULL,0,MA3Period,0,1,0,2);

   bool buy=MA1>MA2 && MA1>MA3;
   bool sell=MA1<MA2 && MA1<MA3;

//--- sell 
   if(sell)
     {
      PutOrder(1,Bid);
     }

//--- buy 
   if(buy)
     {
      PutOrder(0,Ask);
     }
//---
  }
//+------------------------------------------------------------------+
void ClosePos()
  {
   double MA1=iMA(NULL,0,MA1Period,0,1,0,1);
   double MA2=iMA(NULL,0,MA2Period,0,1,0,1);
   double MA3=iMA(NULL,0,MA3Period,0,1,0,1);
   double MA12=iMA(NULL,0,MA1Period,0,1,0,2);
   double MA22=iMA(NULL,0,MA2Period,0,1,0,2);
   double MA32=iMA(NULL,0,MA3Period,0,1,0,2);

   bool buy=MA1>MA2;
   bool sell=MA1<MA2;

   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderMagicNumber()==Magic || OrderSymbol()==Symbol())
           {
            //--- check order type 
            if(OrderType()==OP_BUY)
               if(sell) CloseAll(0);

            if(OrderType()==OP_SELL)
               if(buy)CloseAll(1);
           }
        }
     }
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trailing()
  {
   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)
                 {
                  double BID=MarketInfo(Symbol(),MODE_BID);
                  if(BID-OrderOpenPrice()>Point*TrailingStop)
                    {
                     if(OrderStopLoss()<BID-Point*TrailingStop)
                       {
                        bool m=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(BID-Point*TrailingStop,Digits),OrderTakeProfit(),0,Yellow);
                       }
                    }
                 }
              }

      if(OrderType()==OP_SELL)
        {
         if(TrailingStop>0)
           {
            double ASK=MarketInfo(Symbol(),MODE_ASK);
            if((OrderOpenPrice()-ASK)>(Point*TrailingStop))
              {
               if((OrderStopLoss()>(ASK+Point*TrailingStop)) || (OrderStopLoss()==0))
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(ASK+Point*TrailingStop,Digits),OrderTakeProfit(),0,Yellow);
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()<1) OpenPos();
   if(CountTrades()>0) ClosePos();

   if(TrailingStop>0) Trailing();
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 1 июля 2016, 17:06
+
0
уже вижу что не так работает.
попробую начертать нужный пример, только не смейтесь я в этом ни буб бум <br/
extern int ( направляющая)пара МА. ма1Period =100;
MA2Period =200;
extern int MA1Period = 100;
MA2Period = 50;
extern int MA1Period = 200;
MA2Period = 50;
и обязательно у каждой машки чтобы можно было в ручную выставить методы открытия и закрытия ( ExtModeFastMA
ExtModeSlowMA
ExtPriseFastMA
ExtPriseSlowMA ) нужно метод — Linear Weiqhted
Применить к — Low
и вы забыли про М\М
ну как то так <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/017.gif' alt=' ;) '>&nbsp; 
ну и открытие и закрытие ордеров по моему описанию выше
Редактирован: 1 июля 2016, 18:39
avatar

  7  ell75 Автор Сообщений: 195

  • 1 июля 2016, 18:32
+
0
Настройки добавлю после выходных, мм тоже, а сигнал по машкам опишите. Судя по скринам индикатора, стрелка появляется когда идет пересечение 50 и 100. Так могу сделать.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 1 июля 2016, 19:38
+
0
да. 50\100 и 50\200 это тоже сигналы на вход и выход от направляющей 100\200.
avatar

  7  ell75 Автор Сообщений: 195

  • 1 июля 2016, 20:16
+
0
Вывел параметры, добавил ММ, входы выходы точно по сигналу индикатора:




//+------------------------------------------------------------------+
//|                                                          3MA.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property description "Simple expert advisor"

//--- Inputs

extern int    MA1Period     = 50;
extern int    MA1Shift      = 0;
extern int    MA1Method     = 0;
extern int    MA1ApPrice    = 0;

extern int    MA2Period     = 100;
extern int    MA2Shift      = 0;
extern int    MA2Method     = 0;
extern int    MA2ApPrice    = 0;

extern int    MA3Period     = 200;
extern int    MA3Shift      = 0;
extern int    MA3Method     = 0;
extern int    MA3ApPrice    = 0;

extern int    StopLoss      = 500;
extern int    TakeProfit    = 500;
extern int    TrailingStop  = 0;
extern double Lots          = 0.1;
extern double Risk          = 10;
extern int    Slip          = 30;
extern int    Magic         = 123;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   if(Lots==0)
     {
      if(StopLoss>0 && Risk>0) lot=NormalizeDouble(AccountEquity()/Risk/100/StopLoss,2); // 10000/1/100/1000=1
     }
   if(lot<MarketInfo(NULL,MODE_MINLOT)) lot=MarketInfo(NULL,MODE_MINLOT);
   if(lot>MarketInfo(NULL,MODE_MAXLOT)) lot=MarketInfo(NULL,MODE_MAXLOT);   
   return(lot);
  }  
//+------------------------------------------------------------------+
//| Закрытие позиции по типу ордера                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   double MA1=iMA(NULL,0,MA1Period,MA1Shift,MA1Method,MA2ApPrice,1);
   double MA2=iMA(NULL,0,MA2Period,MA1Shift,MA1Method,MA2ApPrice,1);
   double MA3=iMA(NULL,0,MA3Period,MA1Shift,MA1Method,MA2ApPrice,1);
   double MA12=iMA(NULL,0,MA1Period,MA1Shift,MA1Method,MA2ApPrice,2);
   double MA22=iMA(NULL,0,MA2Period,MA1Shift,MA1Method,MA2ApPrice,2);
   double MA32=iMA(NULL,0,MA3Period,MA1Shift,MA1Method,MA2ApPrice,2);

   bool buy=MA1>MA2 && MA12<MA22;
   bool sell=MA1<MA2 && MA12>MA22;

//--- sell 
   if(sell)
     {
      PutOrder(1,Bid);
     }

//--- buy 
   if(buy)
     {
      PutOrder(0,Ask);
     }
//---
  }
//+------------------------------------------------------------------+
void ClosePos()
  {
   double MA1=iMA(NULL,0,MA1Period,MA1Shift,MA1Method,MA2ApPrice,1);
   double MA2=iMA(NULL,0,MA2Period,MA1Shift,MA1Method,MA2ApPrice,1);
   double MA3=iMA(NULL,0,MA3Period,MA1Shift,MA1Method,MA2ApPrice,1);
   double MA12=iMA(NULL,0,MA1Period,MA1Shift,MA1Method,MA2ApPrice,2);
   double MA22=iMA(NULL,0,MA2Period,MA1Shift,MA1Method,MA2ApPrice,2);
   double MA32=iMA(NULL,0,MA3Period,MA1Shift,MA1Method,MA2ApPrice,2);

   bool buy=MA1>MA2 && MA12<MA22;
   bool sell=MA1<MA2 && MA12>MA22;

   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderMagicNumber()==Magic || OrderSymbol()==Symbol())
           {
            //--- check order type 
            if(OrderType()==OP_BUY)
               if(sell) CloseAll(0);

            if(OrderType()==OP_SELL)
               if(buy)CloseAll(1);
           }
        }
     }
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trailing()
  {
   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)
                 {
                  double BID=MarketInfo(Symbol(),MODE_BID);
                  if(BID-OrderOpenPrice()>Point*TrailingStop)
                    {
                     if(OrderStopLoss()<BID-Point*TrailingStop)
                       {
                        bool m=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(BID-Point*TrailingStop,Digits),OrderTakeProfit(),0,Yellow);
                       }
                    }
                 }
              }

      if(OrderType()==OP_SELL)
        {
         if(TrailingStop>0)
           {
            double ASK=MarketInfo(Symbol(),MODE_ASK);
            if((OrderOpenPrice()-ASK)>(Point*TrailingStop))
              {
               if((OrderStopLoss()>(ASK+Point*TrailingStop)) || (OrderStopLoss()==0))
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(ASK+Point*TrailingStop,Digits),OrderTakeProfit(),0,Yellow);
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()<1) OpenPos();
   if(CountTrades()>0) ClosePos();

   if(TrailingStop>0) Trailing();
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 3 июля 2016, 10:17
+
0
нарисовала и описала вам прямо на скрине как нужно. не думаю, что это сложно написать советника. в направляющей бай брать брать только ордера на бай и закрывать на сигнале в сел от этой направляющей и аналогично на сел, если в направляющей сел, закрываем ордер при сигнале на бай от любых МА. ПОЭТОМУ я вам и написала, что тут важно вписать сразу 3 пары МА, потому что тут работают все МА.
avatar

  7  ell75 Автор Сообщений: 195

  • 3 июля 2016, 19:53
+
0
ВОТ СКРИН ТЕСТА В РУЧНУЮ С ЕГО ДОХОДНОСТЬЮ, ЕСЛИ ДЕЛАТЬ ПО ПРАВИЛАМ
avatar

  7  ell75 Автор Сообщений: 195

  • 3 июля 2016, 21:02
+
0
нарисовала и описала вам прямо на скрине как нужно. не думаю, что это сложно написать советника. в направляющей бай брать брать только ордера на бай и закрывать на сигнале в сел от этой направляющей и аналогично на сел, если в направляющей сел, закрываем ордер при сигнале на бай от любых МА. ПОЭТОМУ я вам и написала, что тут важно вписать сразу 3 пары МА, потому что тут работают все


Я не понимаю слова направляющая, понимаю только пересечение 50 и 100 или 100 и 200 или 50 и 200. Вот так я понимаю.

Должно быть четкое ТЗ, а я никак не могу из вас его вытянуть. Все не берусь.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 3 июля 2016, 22:38
+
0
Я добивался от вас примерно следующего ТЗ:

1. Входы.

1.1. Покупка. МА 50 пересекает МА 100 или МА 200 снизу вверх.
1.2. продажа. МА 50 пересекает МА 100 или МА 200 сверху вниз.

2. Выходы.

2.1. Закрытие покупок. МА 50 пересекает МА 100 или МА 200 сверху вниз
2.2. Закрытие продаж. МА 50 пересекает МА 100 или МА 200 снизу вверх.

Всего то нужно было 5 строчек так примерно написать :) 
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 4 июля 2016, 09:39
+
0
вы не сердитесь на меня. я и так пытаюсь вам обьяснить как могу. вроде выше я чётко описала что и как с этими машками. сейчас попробую немного по другому описать по действию
avatar

  7  ell75 Автор Сообщений: 195

  • 4 июля 2016, 09:53
+
0
1.Входы:
Покупка:
МА пересекает 100\200, МА пересекает 50\100, МА пересекает 50\200 снизу вверх
Продажа:
МА пересекает 100\200, МА пересекает 50\100, МА пересекает 50\200 сверху вниз
2 Выходы:
МА 50 пересекает в пересечени 100\200(в покупке)
МА 50 пересекает в пересечении 100\200 ( в продаже)
а если так? технически это очень сложно описать. хорошо получается только визуально на скринах. с выходами я не понимаю как точно вам технически написать
не сердитесь. я ведь её в ручную оттестировала и даёт хоть не большую но осознанную прибыль.
avatar

  7  ell75 Автор Сообщений: 195

  • 4 июля 2016, 10:24
+
0
Обратитесь к человеку, который составит вам грамотное ТЗ, а потом уже сюда, образец я привел.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 4 июля 2016, 10:43
+
0
А то что я сверху сегодня написала это не подходит?
avatar

  7  ell75 Автор Сообщений: 195

  • 4 июля 2016, 10:50
+
0
А то что я сверху сегодня написала это не подходит?

Тут просто слов нет *crazy*  :D 
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 4 июля 2016, 11:02
+
0
ну попробуйте пожалуйста в скринах разобраться. вам же виднее будет понять как технически написать советник. я уже не знаю как ещё описать его
avatar

  7  ell75 Автор Сообщений: 195

  • 4 июля 2016, 11:15
+
0
я сделал 3 попытки, теперь дело за грамотным ТЗ.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 4 июля 2016, 12:24
+
0
не бросайте это дело, я вас не тороплю. как будет у вас свободное время, попробуйте ещё раз вникнуть в суть дела в скринах. очень вас прошу. может быть со стороны комментариев кто то сможет его реализовать.
кому интересен этот сов, добро пожаловать. ведь стратегия работает.это единственное что не перерисовывает, перепробовала очень многое за много времени
avatar

  7  ell75 Автор Сообщений: 195

  • 4 июля 2016, 12:40
+
0
все готово ведь почти только от вас ТЗ нужно, а сигнал переписать 5 минут делов.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 4 июля 2016, 12:46
+
0
так в том то и дело, что я не могу сообразить как технически правильно его написать, будем подождать, авось и выстрелит у кого подсказка.
avatar

  7  ell75 Автор Сообщений: 195

  • 4 июля 2016, 12:58
+
0
Тут вариантов немного:

номер раз:

1. Входы.

1.1. Покупка. МА 50 пересекает МА 100 или МА 200 снизу вверх.
1.2. Продажа. МА 50 пересекает МА 100 или МА 200 сверху вниз.

2. Выходы.

2.1. Закрытие покупок. МА 50 пересекает МА 100 или МА 200 сверху вниз
2.2. Закрытие продаж. МА 50 пересекает МА 100 или МА 200 снизу вверх.


двас:

1. Входы.

1.1. Покупка. МА 100 пересекает МА 200 снизу вверх.
1.2. продажа. МА 100 пересекает МА 200 сверху вниз.

2. Выходы.

2.1. Закрытие покупок. МА 50 пересекает МА 100 или МА 200 сверху вниз
2.2. Закрытие продаж. МА 50 пересекает МА 100 или МА 200 снизу вверх.


трис:

1. Входы.

1.1. Покупка. МА 50 пересекает МА 100 или МА 200 снизу вверх.
1.2. продажа. МА 50 пересекает МА 100 или МА 200 сверху вниз.

2. Выходы.

2.1. Закрытие покупок. МА 100 пересекает МА 200 сверху вниз
2.2. Закрытие продаж. МА 100 пересекает МА 200 снизу вверх.


четырес:

1. Входы.

1.1. Покупка. МА 100 пересекает МА 200 снизу вверх.
1.2. продажа. МА 100 пересекает МА 200 сверху вниз.

2. Выходы.

2.1. Закрытие покупок. МА 100 пересекает МА 200 сверху вниз
2.2. Закрытие продаж. МА 100 пересекает МА 200 снизу вверх.


может где еще спряталось и пятьс :D 
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 4 июля 2016, 14:48
+
0
*lalala*  вот это вы потрудились )) и даже правы есть ещё и пятьс )) только не матюкайте меня. ещё и пятьсый вариант, если так возможно конечно.
1. Входы.

1.1. Покупка. МА 100 пересекает МА 200 снизу вверх.
1.2. продажа. МА 100 пересекает МА 200 сверху вниз.
1.3. Покупка. МА 50 пересекает МА 100 или МА 200 снизу вверх.
1.4. Продажа. МА 50 пересекает МА 100 или МА 200 сверху вниз.

2. Выходы.

2.1. Закрытие покупок. МА 50 пересекает МА 100 или МА 200 сверху вниз
2.2. Закрытие продаж. МА 50 пересекает МА 100 или МА 200 снизу вверх.
2.3. Закрытие покупок. МА 100 пересекает МА 200 сверху вниз
2.4. Закрытие продаж. МА 100 пересекает МА 200 снизу вверх.

ещё раз прошу прощение. ну творческий я человек ))
вот только с этими сверху вниз, снизу вверх я запуталась, чтобы не получилось, друг друга они будут сразу закрывать
Редактирован: 4 июля 2016, 18:16
avatar

  7  ell75 Автор Сообщений: 195

  • 4 июля 2016, 18:03
+
0
ещё и пятьсый вариант,

Это равноценно варианту 1. Можно даже упростить, т.к. МА 50 всегда раньше пересечет МА 100 и будет так:

1. Входы.

1.1. Покупка. МА 50 пересекает МА 100 снизу вверх.
1.2. Продажа. МА 50 пересекает МА 100 сверху вниз.

2. Выходы.

2.1. Закрытие покупок. МА 50 пересекает МА 100 сверху вниз
2.2. Закрытие продаж. МА 50 пересекает МА 100 снизу вверх.



А так я уже сделал в коде выше.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 4 июля 2016, 18:32
+
0
так я тогда уже протестировала сразу. не подходит.
а может лучше сделать тогда такую сову с машками, чтобы можно было в ручную указывать какой период ма и что она должна делать ( в смысле открывать или закрывать выбор функции. потому как в ночное время упускаются входы и выходы
avatar

  7  ell75 Автор Сообщений: 195

  • 4 июля 2016, 18:58

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий