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

Рейтинг 2092



РЕКОМЕНДУЮ



советник для открытия сделки при условии пересечения 3 - х Moving Average на нескольких валютных парах союзниках одновременно .

доброе утро! решился обратиться с просьбой написать советник.

тех. задание:
1. советник торгует сам и на селл и на бай на mt4
2. сигналом для входа в рынок служит момент пересечения скользящих средних одновременно в том же направлении на парах союзниках( возьмем GBP-USD как основную и пары союзники
GBPJPY — GBPCHF — GBPCAD — GBPSEK — GBPSGD — AUDUSD — NZDUSD — EURUSD )-- нужна возможность замены этих пар на другие.
3.советник должен выставлять стоплосс ( регулировка в пунктах )
4.советник должен выставлять тейк профит ( регулировка в пунктах )
5.Trailing Stop – задаём в пунктах расстояние до текущей цены, за которой будет двигаться Стоп-лосс
6.возможность менять данные всех трех Moving Average (период и метод и по умолчанию применить к закрытию )
7.работать на любом временном промежутке.
8.альт звуковой по времени чтобы подольше и в окне если есть возможность то покрупнее — когда вход в рынок.
9.обьем лота — по умолчанию 0.01 в валюте депозита
картинки служат примером как это должно выглядеть в принципе и не более того



  • 0
  • Просмотров: 2766
  • 7 января 2022, 08:45
  • eduard9898
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Советник на одном индикаторе Trline_Sub st2050 для МТ4
Следующая запись в группе  
Советник на индикаторе RRR_MTF
06 января 2022
07 января 2022

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

+
0
забыл добавить что все сделки только по одной паре как пример GBRUSD (или любой другой по выбору)
avatar

  6  eduard9898 Автор Сообщений: 80

  • 7 января 2022, 10:07
+
0
сколько пар для анализа и сколько машек?
avatar

  34  AM2 Сообщений: 15905 - Андрей

  • 7 января 2022, 11:20
+
0
машек 3 скажем 17 — 45 — 77 как вариант но не принципиально
пар 6 думаю достаточно
Редактирован: 7 января 2022, 14:48
avatar

  6  eduard9898 Автор Сообщений: 80

  • 7 января 2022, 14:44
+
0
avatar

  34  AM2 Сообщений: 15905 - Андрей

  • 8 января 2022, 12:05
+
0
"– Именно, именно, – закричал он, и левый зеленый глаз его, обращенный к Берлиозу, засверкал, – ему там самое место! Ведь говорил я ему тогда за завтраком: «Вы, профессор, воля ваша, что-то нескладное придумали! Оно, может, и умно, но больно непонятно. Над вами потешаться будут.»"
(«Мастер и Маргарита.» Булгаков Михаил Афанасьевич.)
Сдается мне ребята что сделок можно и не дождаться.Слишком много «если».
Конечно это было бы возможно проверить на пятерке, но имеем что имеем.
Есть предложение немного изменить стратегию.
Написал простой индикатор (суммируются разницы цен закрытия последнего и предпоследнего баров всех 6 пар.).Сам индикатор вертится вокруг нуля.
Поэтому стратегия простая:


 bool buy = (ma1s1>ma2s1 && ma2s1>ma3s1 && iCustom(NULL,0,"Multi Ma 6 Symbols",0,1)>+delta);
 bool sell = ma1s1<ma2s1 && ma2s1<ma3s1 && iCustom(NULL,0,"Multi Ma 6 Symbols",0,1)<-delta);


Сигнальную линию прописал на всякий случай.
Тогда эти условия (при желании) можно прописать для каждой пары отдельно — получиться мультивалютный советник, возможно с элементами хеджирования.
Но проверить это можно или на демосчете на четверке или в тестере на пятерке.

//+------------------------------------------------------------------+
//|                                           Multi Ma 6 Symbols.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                          http://www.mункцql5.com |
//+------------------------------------------------------------------+

#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mункцql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1  2
#property indicator_width2  2

extern string pair1 = "GBPJPY";         // символ 1
extern string pair2 = "GBPCHF";         // символ 2
extern string pair3 = "GBPCAD";         // символ 3
extern string pair4 = "AUDUSD";         // символ 4
extern string pair5 = "NZDUSD";         // символ 5
extern string pair6 = "EURUSD";         // символ 6

extern int    BarsCount=150;
extern int    period = 1;
//---- buffers
double MaBuffer[];
double SignalBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,MaBuffer);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,SignalBuffer);
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexLabel(0,"MA");
   SetIndexLabel(1,"Signal");
   IndicatorShortName(" Multi Ma 6 Symbols ");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
    int limit;
   int counted_bars=IndicatorCounted();
   
   //---- check for possible errors
   if(counted_bars<0) return(-1);
   //---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
 
   if(IsOptimization()==true || IsTesting()==true){Comment("В тестере будет ошибка деления на 0. описано - в справке по MarketInfo");return(0);}
//----
   double Point1 = MarketInfo(pair1,MODE_POINT);
   double Point2 = MarketInfo(pair2,MODE_POINT);
   double Point3 = MarketInfo(pair3,MODE_POINT);
   double Point4 = MarketInfo(pair4,MODE_POINT);
   double Point5 = MarketInfo(pair5,MODE_POINT);
   double Point6 = MarketInfo(pair6,MODE_POINT);

   //---- main loop
   for(int i=0; i<BarsCount; i++)
   {             
   MaBuffer[i] =(
                 (iMA(pair1,0,period,0,MODE_SMA,PRICE_CLOSE,i)-iMA(pair1,0,period,0,MODE_SMA,PRICE_CLOSE,i+1))/Point1+
                 (iMA(pair2,0,period,0,MODE_SMA,PRICE_CLOSE,i)-iMA(pair2,0,period,0,MODE_SMA,PRICE_CLOSE,i+1))/Point2+
                 (iMA(pair3,0,period,0,MODE_SMA,PRICE_CLOSE,i)-iMA(pair3,0,period,0,MODE_SMA,PRICE_CLOSE,i+1))/Point3+
                 (iMA(pair4,0,period,0,MODE_SMA,PRICE_CLOSE,i)-iMA(pair4,0,period,0,MODE_SMA,PRICE_CLOSE,i+1))/Point4+
                 (iMA(pair5,0,period,0,MODE_SMA,PRICE_CLOSE,i)-iMA(pair5,0,period,0,MODE_SMA,PRICE_CLOSE,i+1))/Point5+
                 (iMA(pair6,0,period,0,MODE_SMA,PRICE_CLOSE,i)-iMA(pair6,0,period,0,MODE_SMA,PRICE_CLOSE,i+1))/Point6
                 );
 
   SignalBuffer[i]=iMAOnArray(MaBuffer,0,2,0,MODE_SMA,i);
    }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 


avatar

  16  ssg Сообщений: 817

  • 8 января 2022, 22:14
+
0
спасибо за скорость сейчас только осталось все это проверить на практике

сделки должны быть только когда будет общее движение — это может быть сделка в 2-3 дня

вопрос как можно определить пару на которой будут торги — через сервис — настройки и прописать пару по умолчанию или можно в советнике прописать сразу как пример GBPUSD
Редактирован: 8 января 2022, 22:44
avatar

  6  eduard9898 Автор Сообщений: 80

  • 8 января 2022, 22:29

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