Спрашивайте! - страница 141

 
arshadFX:
пожалуйста опубликуйте правила я не высококвалифицированный программист я изучаю MQL4 я попробую сделать советника

Хорошо, спасибо.

Правила для этого советника:

Советник должен вводить 2 ордера, когда индикатор TD дает сигналы, и эти 2 ордера будут управляться со стопом, профитом и трейлинг-стопом.

Мне нужны следующие входные данные:

Начальный час

час окончания

стоп

трейлинг

прибыль

проскальзывание

ММ

риск

магическое число

 

..........

 

Проблема двойных заказов

Быстрый вопрос ко всем,

Я искал на сайте сообщения о проблемах с двойными ордерами и не нашел ответа на этот вопрос:

Время от времени я получаю двойной ордер, размещенный (один и тот же ордер дважды) моим советником. Поскольку не каждый ордер дублируется, я предполагаю, что это проблема связи с сервером. Кто-нибудь знает какой-нибудь код, который может помочь уменьшить или устранить эту проблему?

Спасибо

 

Привет, kiromano

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

Учет заказов - создание обычной программы - Учебник MQL4

 

Спасибо ArshadFX

Отличная статья Аршад.

Спасибо за ответ. Похоже, мне предстоит выполнить домашнее задание. Я дам вам знать, как все пойдет...

 

Кто-нибудь может помочь, пожалуйста, с этим

У меня есть советник, и я хочу получить доступ к 2 линиям из индикатора внутри советника, линии в индикаторе следующие.

выражение 1

if(iMA(NULL,0,Period(),1,MODE_SMA,PRICE_HIGH,i) > zigzag1 && iMA(NULL,0,Period(),1,MODE_SMA,PRICE_HIGH,i) != 0 && iMA(NULL,0,Period(),1,MODE_SMA,PRICE_HIGH,i) != EMPTY_VALUE) ExtMapBuffer2=iMA(NULL,0,Period(),1,MODE_SMA,PRICE_HIGH,i); else ExtMapBuffer2 = 0.0;;

выражение 2

if(iMA(NULL,0,Period(),1,MODE_SMA,PRICE_LOW,i) < zigzag1 && iMA(NULL,0,Period(),1,MODE_SMA,PRICE_LOW,i) != 0 && iMA(NULL,0,Period(),1,MODE_SMA,PRICE_LOW,i) != EMPTY_VALUE) ExtMapBuffer1=iMA(NULL,0,Period(),1,MODE_SMA,PRICE_LOW,i); else ExtMapBuffer1 = 0.0;

Я хочу сказать в советнике

когда выражение 1 истинно, покупать и закрывать, продавать, если открыто

когда выражение 2 истинно, продавать и закрывать Buy, если открыто.

Как я могу это сделать?

 
increase:
Как я могу это сделать?
увеличение:
Как я могу это сделать?

Это что-то вроде

double Buy1_1 = iCustom(NULL, 0, "Trend", 96, Current + 0);

double Buy1_2 = 0;

double Sell1_1 = iCustom(NULL, 0, "Trend", 97, Current + 0);

double Sell1_2 = 0;

double CloseBuy1_1 = iCustom(NULL, 0, "Trend", 96, Current + 0);

double CloseBuy1_2 = 0;

double CloseSell1_1 = iCustom(NULL, 0, "Trend", 97, Current + 0);

double CloseSell1_2 = 0;

 

Проблема в NormalizeDouble

Мне нужна 5 цифра после запятой в котировке цены, она будет отображаться при использовании функции DoubleToStr. Я хочу сохранить значение, полученное из объекта, и использовать его для дальнейших вычислений, т.е. "price2".

Не мог бы кто-нибудь помочь мне решить эту проблему?

Файлы:
objget.mq4  2 kb
 

??

перенесена в другую тему.

 

Помогите мне с моим советником, пожалуйста

Пожалуйста, помогите мне с моим советником. Он основан на стратегии Inside Bar, и, хотя он очень прибыльный в бэктестинге с 08 июня, это совершенно случайное явление, так как он не следует программе вообще. Логика входа в сделку основана на этом посте здесь Между 40-100 пипсами в день. Но, вместо этого, он размещает новую сделку в любом старом месте, как только старая сделка закрывается, и игнорирует торговые требования. Я уверен, что моя проблема очень проста, но мои навыки невелики.

Я думаю, что проблема заключается в этих строках кода:

if(Open[3]>Close[3] && High[2]=Low[3] && Open[2] High[2] || ask-2*Point> High[1])

{

Candle="Long";

}

if(Open[3]<Close[3] && High[2]=Low[3] && Open[2]>Close[2] && bid+2*Point < Low[2] || bid+2*Point < Low[1])

{

Candle="Short";

}

Пожалуйста, кто-нибудь может помочь, так как я потратил часы, пытаясь исправить это, и у меня заканчиваются идеи!

Заранее спасибо

Файлы:
Причина обращения: