Предложения по автоматизации торговли

  • Автор темы Автор темы chocolate
  • Дата начала Дата начала

_SERG_

Активный участник
1. Советник выставляет по одному ордеру в разные стороны через 20 пунктов
2. Сработал селстоп прошёл в сел 15 пунктов выставился безубыток в плюс 5. То есть у нас есть параметр безубыток профит 10 перевод 5.
3. Как только выставился безубыток то байстоп удаляется и сразу выставляется другая отложка байстоп на растоянии степ 20 и тут же выставляется отложка селстоп на растоянии 20.

Нам нужны параметры.
Лот
Безубыток
Трал
Тейк профит
Стопы
Закрытие по обшему профиту
Степ для отложки от цены
магик
Помощь то в чём нужна? Где сам написанный код? Есть какие то конкретные вопросы? Не устанавливаются ордера, трал не работает, в справке ошибка? Ошибки при компиляции.....
 
Последнее редактирование:

IYG

Местный знаток
Доброго здоровья!
Требуется автоматизация.
При появлении первого сигнала(появилась зона) выставляются сетки ордеров с тейком каждого ордера в середине зоны. После закрытия открытых ордеров по тейку не сработавшие удаляются.
Если открытые ордера не закрылись по тейку, а появился второй сигнал(разрыв зоны) индикатора, то если "+" закрываем все открытые ордера с удалением не сработавших. Если "-", то начинаем усреднение с удалением не сработавших ордеров начальной сетки.
Выставление сетки ордеров по следующему первому сигналу происходит не зависимо от закрытия предыдущей сетки.

Необходимые настройки совы:

Начальный лот для лимиток
Количество ордеров в каждую сторону
Шаг для лимиток с возможностью переключения с постоянного на увеличивающийся
Коэффициент увеличения лота для лимиток с возможностью выбора постоянного, увеличивающегося или уменьшающегося.
Размер первого лота усреднения
Коэффициент последующих ордеров в усреднении
Количество ордеров в усреднении
Профит в пунктах для закрытия усреднения.

Буду благодарен за любое внимание к заданию.

Что нет желающих создать грааль?
 

Ugar

Гуру форума
Что нет желающих создать грааль?
Судя по тому что за столько времени никто не написал, этот алгоритм никому не показался граалем.
Писать такой бесплатно желающих не нашлось. Писанины явно не на полчаса, а результат, скорее всего, будет сомнительный.
 
  • Like
Реакции: IYG

clarmax

Архитектор
Да уж, был бы Грааль эта сетка или более-менее прибыльной, то не была бы бесплатной и товарищ cmillion давно бы её уже продавал :) "игрушка" для надежды :nda:
 

iluksj3r

Новичок форума
Ребята, почините, пожалуйста, индикатор 123PatternsV7_alerts.mq4. В новом билде он не анализирует новые свечки, нужно постоянно рефрешить его. Или же прикрутите алерты к уже рабочему индикатору 123PatternsV7.01 nmc.mq4, который работает корректно.

Индикатор очень стоящий, но сигналы появляются при пробитии хая или лоу свечи, поэтому уследить за сигналом очень сложно.
 

Вложения

vaas04

$$$$$$$$$
Нашёл код SIROC он из Metastock, говорят он там чуть ли не основной.Только в MOL нужно переделать. Если кто умеет может попробуйте на общее благо.
 

Вложения

  • 8.docx
    8.docx
    13,7 КБ · Просмотры: 27
  • Like
Реакции: asb

kalasch

Новичок форума
всем привет сделайте пожалуйста советника по этому индикатору!чтобы был тейк,размер лота !и сделка закрывалась автоматически при появлении новой свечи!заранее спасибо!
#property copyright "FILTER-EXTRA"


#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_width1 2
#property indicator_width2 2

extern int timeFrame = 0;
extern int Length = 1;
extern int barsback = 500;
bool alertsOn = true;
bool alertsOnCurrent = false;
bool alertsMessage = true;
bool alertsSound = false;
bool alertsNotify = false;
bool alertsEmail = false;
string soundfile = "alert2.wav";
extern bool arrowsVisible = true;
extern string arrowsIdentifier = "filterArrows";
extern double arrowsDisplacement = 0.5;
extern color arrowsUpColor = DeepSkyBlue;
extern color arrowsDnColor = Red;
extern int arrowsUpCode = 233;
extern int arrowsDnCode = 234;
extern int arrowsUpSize = 1;
extern int arrowsDnSize = 1;
extern bool UseSound = true;
extern bool AlertSound = true;
extern string SoundFileBuy = "alert2.wav";
extern string SoundFileSell = "email.wav";
extern bool SendMailPossible = false;
extern int SIGNAL_BAR = 0;
bool SoundBuy = False;
bool SoundSell = False;

double buffer1[];
double buffer2[];
bool cer;
bool cer2;
bool cer3 = TRUE;
string fileName;

int init() {
cer3 = TRUE;
SetIndexStyle(0, DRAW_HISTOGRAM);
SetIndexBuffer(0, buffer1);
SetIndexStyle(1, DRAW_HISTOGRAM);
SetIndexBuffer(1, buffer2);
fileName=WindowExpertName();
timeFrame = MathMax(timeFrame,Period());
return (0);
}

int deinit() {
string lookFor = arrowsIdentifier+":";
int lookForLength = StringLen(lookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
return (0);
}

int start() {

if (timeFrame!=Period())
{
int limit = MathMin(Bars-1,barsback*timeFrame/Period());
for (int i = limit; i >= 0; i--)
{
int y = iBarShift(NULL,timeFrame,Time);
buffer1 = iCustom(NULL,timeFrame,fileName,0,Length,barsback, alertsOn,alertsOnCurrent,alertsMessage,alertsSound ,alertsNotify,alertsEmail,soundfile,arrowsVisible, arrowsIdentifier,arrowsDisplacement,arrowsUpColor, arrowsDnColor,arrowsUpCode,arrowsDnCode,arrowsUpSi ze,arrowsDnSize,0,y);
buffer2 = iCustom(NULL,timeFrame,fileName,0,Length,barsback, alertsOn,alertsOnCurrent,alertsMessage,alertsSound ,alertsNotify,alertsEmail,soundfile,arrowsVisible, arrowsIdentifier,arrowsDisplacement,arrowsUpColor, arrowsDnColor,arrowsUpCode,arrowsDnCode,arrowsUpSi ze,arrowsDnSize,1,y);
}
return(0);
}


double low1;
double high1;
double cero[10000][3];
if (!cer3) return (0);


int pep = 0;
int bep = 0;
int tep = 0;

double high60 = High[barsback];
double low68 = Low[barsback];

int li3 = barsback;
int li6 = barsback;
for (int li2 = barsback; li2 >= 0; li2--) {
low1 = 10000000;
high1 = -100000000;
for (int li8 = li2 + Length; li8 >= li2 + 1; li8--) {
if (Low[li8] < low1) low1 = Low[li8];
if (High[li8] > high1) high1 = High[li8];
}
if (Low[li2] < low1 && High[li2] > high1) {
bep = 2;
if (pep == 1) li3 = li2 + 1;
if (pep == -1) li6 = li2 + 1;
} else {
if (Low[li2] < low1) bep = -1;
if (High[li2] > high1)bep = 1;
}
if (bep != pep && pep != 0) {
if (bep == 2) {
bep = -pep;
high60 = High[li2];
low68 = Low[li2];
cer = FALSE;
cer2 = FALSE;
}
tep++;
if (bep == 1) {
cero[tep][1] = li6;
cero[tep][2] = low68;
cer = FALSE;
cer2 = TRUE;
}
if (bep == -1) {
cero[tep][1] = li3;
cero[tep][2] = high60;
cer = TRUE;
cer2 = FALSE;
}
high60 = High[li2];
low68 = Low[li2];
}
if (bep == 1) {
if (High[li2] >= high60) {
high60 = High[li2];
li3 = li2;
}
}
if (bep == -1) {
if (Low[li2] <= low68) {
low68 = Low[li2];
li6 = li2;
}
}
pep = bep;
if (cer2 == TRUE) {
buffer2[li2] = 1;
buffer1[li2] = 0;
}
if (cer == TRUE) {
buffer2[li2] = 0;
buffer1[li2] = 1;
}
manageArrow(li2);
}
string message = StringConcatenate("FILTER-EXTRA(", Symbol(), ", ", Period(), ") - BUY!!!"," Price - ",Ask ," !!! Time - " ,TimeToStr(TimeLocal(),TIME_SECONDS));
string message2 = StringConcatenate("FILTER-EXTRA(", Symbol(), ", ", Period(), ") - SELL!!!"," Price - ",Bid," !!! Time - " ,TimeToStr(TimeLocal(),TIME_SECONDS));

if (buffer2[SIGNAL_BAR] != EMPTY_VALUE && buffer2[SIGNAL_BAR] != 0 && SoundBuy)
{
SoundBuy = False;
if (UseSound) PlaySound (SoundFileBuy);
if(AlertSound){
Alert(message);
if (SendMailPossible) SendMail(Symbol(),message);
}
}
if (!SoundBuy && (buffer2[SIGNAL_BAR] == EMPTY_VALUE || buffer2[SIGNAL_BAR] == 0)) SoundBuy = True;


if (buffer1[SIGNAL_BAR] != EMPTY_VALUE && buffer1[SIGNAL_BAR] != 0 && SoundSell)
{
SoundSell = False;
if (UseSound) PlaySound (SoundFileSell);
if(AlertSound){
Alert(message2);
if (SendMailPossible) SendMail(Symbol(),message2);
}
}
if (!SoundSell && (buffer1[SIGNAL_BAR] == EMPTY_VALUE || buffer1[SIGNAL_BAR] == 0)) SoundSell = True;

//+------------------------------------------------------------------+
return (0);
}

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//

void manageArrow(int i)
{
if (arrowsVisible)
{
ObjectDelete(arrowsIdentifier+":"+Time);

if (buffer2 == 1 && buffer2[i+1] == 0) drawArrow(i,arrowsUpColor,arrowsUpCode,arrowsUpSiz e,false);
if (buffer1 == 1 && buffer1[i+1] == 0) drawArrow(i,arrowsDnColor,arrowsDnCode,arrowsDnSiz e,true);
}
}

//
//
//
//
//

void drawArrow(int i,color theColor,int theCode,int theSize, bool up)
{
string name = arrowsIdentifier+":"+Time;
double gap = iATR(NULL,0,20,i);

//
//
//
//
//

ObjectCreate(name,OBJ_ARROW,0,Time,0);
ObjectSet(name,OBJPROP_ARROWCODE,theCode);
ObjectSet(name,OBJPROP_COLOR, theColor);
ObjectSet(name,OBJPROP_WIDTH, theSize);

if (up)
ObjectSet(name,OBJPROP_PRICE1,High + arrowsDisplacement * gap);
else ObjectSet(name,OBJPROP_PRICE1, Low - arrowsDisplacement * gap);
}

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
 

gek

Элитный участник
Если прочли пост выше и всё-же не передумали - дерзайте :)

Maks Shukurov,привет!:)
Сделай пожалуйста советничка по этому индикатору.
При появлении стрелки -вход,выход.
Также тейк,стоп,трейлинг и если можно б/у.
Зараннее благодарен.
 

Вложения

  • VQ.mq4
    VQ.mq4
    7,1 КБ · Просмотры: 69

amarlboro

Почетный гражданин
Уважаемые программисты, напишите пожалуйста несложный на мой взгляд советник. ТЗ в архиве по ссылке. Заранее спасибо!
_https://yadi.sk/d/VgpTQu1mj9rup
 
Последнее редактирование модератором:

cardon

Активный участник
нужен риск менеджмент на mt4 который считает риск от депо - например депо 1000$ риск выставляем допустим 2%получается риск - 20$, допустим 2 неудачные попытки входа в рынок каждая должна быть со стопом 10$ после чего советник не дает торговать, если попыток больше например 4 то стоп на 5$ (число попыток ставится заранее) стоп выставляет автоматически от указанных попыток количества ордеров, если вход положительный, то % стопа увеличивается от депо. Если мы допустим вышли раньше, чем уровень стопа, то в мониторе - графе пишется процент (сколько осталось) например было 2% , мы вышли раньше стало 1,5%
цель - не выйти за допустимую просадку

Ну или что нибудь подобное от вас
 

kalasch

Новичок форума
всем привет сделайте пожалуйста сову по этому индикатору!пр появлении красной точки вход на покупку,выход при появлении другой точки другого цвета!также и на продажу!заранее спасибо
 

Вложения

IYG

Местный знаток
Доброго здоровья!
Нужна сова.
Ставит два стоп ордера на хай/лоу свечи закрывшейся в ...(время час/мин в настройки).Отступ от цены в пунктах (в настройки) в случае близкого расположения и невозможности поставить по условию. Стопы на местах противоположных ордеров. При срабатывании одного ордера второй удаляется. Сработавший через ...(пункты прибыли в настройки) закрывает 50% и переносит стоп на величину прибыли закрытой в пунктах +(пункты сверху выносим в настройки). Через ...(пунктов прибыли выносим в настройки) закрывает 25% от оставшегося размера ордера и переводит в б/у +(количество пунктов в настройки). Далее повторяем но в другое время(вынести настройки). Меджики разные на первый и второй заход(выносим в настройки)

Спасибо! И двойное спасибо если ответите!
З.Ы. Если таковые имеются просьба поделится открытым кодом если не сложно!
 
Последнее редактирование:

kalasch

Новичок форума
всем привет!помагите пожалуйста написать сову по этому индикатору!очень надо!
 

Вложения

cardon

Активный участник
топик для просящих помощи и не получающих ее.
 
Верх