Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1017

 
Добрый день Друзья! Сейчас занимаюсь торговлей с помощью советника,
написанного по законам мартингейла, подскажите пожалуйста можно ли по данным параметрам написать самостоятельно советника?
------------------------------------------------------------------------------
GridA=true
GridB=true
GridC=true
OrdersSideOptimize=true
StopTradeAfterTP_GridA=false
StopTradeAfterTP_GridB=false
StopTradeAfterTP_GridC=false
MaxTrades_GridA=15
MaxTrades_GridB=15
MaxTrades_GridC=15
MagicNumber_GridA=7771
MagicNumber_GridB=7772
MagicNumber_GridC=7773
MaxLots=100.0
AutoMM=3.0
T6="Настройки лотности"
BaseOrderLevel=1
LotExponent=1.33
T7="Настройки ТейкПрофита"
TakeProfit=125.0
Slippage=3.0
T10="Step settings"
Step_GridA=170.0
Step_GridB=170.0
Step_GridC=200.0
DistanceExponent=1.18
BaseDistanceOrder=10

С уважением к вам Благородный Дикарь
 

Добрый день. Подскажите пожалуйста.


При компиляции выводит ошибку.

if(flag_Cl_Buy = "on" && Ask>=BB)

'&&' - illegal operation use

Данный знак это логическое И. Перевод '&&' - незаконное использование. )))

Что не так?? ))

Стандартное разветвление. Сделать, что находится в if если условие 1 (flag_Cl_Buy = "on") и значение цены выше того, что указанно. Что не так с этим И???


 
Gilmor:

Добрый день. Подскажите пожалуйста.


При компиляции выводит ошибку.

'&&' - illegal operation use

Данный знак это логическое И. Перевод '&&' - незаконное использование. )))

Что не так?? ))

Стандартное разветвление. Сделать, что находится в if если условие 1 (flag_Cl_Buy = "on") и значение цены выше того, что указанно. Что не так с этим И???


==

то есть сравнение это "==" , вы один знак пропустили

 
Gilmor:

Добрый день. Подскажите пожалуйста.


При компиляции выводит ошибку.

'&&' - illegal operation use

Данный знак это логическое И. Перевод '&&' - незаконное использование. )))

Что не так?? ))

Стандартное разветвление. Сделать, что находится в if если условие 1 (flag_Cl_Buy = "on") и значение цены выше того, что указанно. Что не так с этим И???


Вы не сравниваете, а присваиваете.

if(flag_Cl_Buy = "on" && Ask>=BB)

Сравнение выглядит так:

if(flag_Cl_Buy == "on" && Ask>=BB)
 
dodon_:
Добрый день Друзья! Сейчас занимаюсь торговлей с помощью советника,
написанного по законам мартингейла, подскажите пожалуйста можно ли по данным параметрам написать самостоятельно советника?

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

https://www.mql5.com/ru/job

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Добрый день. Нужно написать советника на основе мартингейла работающего в обе стороны с усреднениями на ТФ м1/м5/м15/Н1/Н4/D1 , с тейк профитом но без стоп лоса, для центового счета, с функцией привязки советника на определенные счета. Требуются данные входные параметры для управления советником: Стратегия GridA: включить/выключить стратегию...
 
Vladimir Karputov:

Вы не сравниваете, а присваиваете.

Сравнение выглядит так:

Большое спасибо. =)

 

Заранее извиняюсь. Еще пару вопросиков.

Подскажите там, где понять просто не могу. MQL4


void OnTick()
  {
//---
............
тело самого советника
.........
return;
  }

Вроде какие ошибки? А он выдает.

'OnTick' - function declarations are allowed on global, namespace or class scope only

'OnTick' - function already defined and has body

see previous declaration of function 'OnTick'

'}' - unexpected end of program

При этом т.к. он подсвечивает скобки, то я перепроверил. Это именно закрывающая скобка функции 'OnTick'.

До этой функции только объявление переменных и int OnInit(), void OnDeinit(const int reason)

-----------------------------

Спионерил с просторов данного форума простое решение для закрытия всех ордеров.

for(z=OrdersTotal()-1; z>=0; z--)    // закрытие всех ордеров.
        {
         if(OrderSelect(z,SELECT_BY_POS)==true && OrderSymbol() == Symbol())
           {
            OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,Red);
           }
        }

Выдает желтый значек и просит перепроверить возвращаемое значение. Так вроде мне не нужно ничего проверять о возвращении... О чем он намекает?

------------------------------

Оператор switch

Прекрасная вещь переключалка.  Выражение сделал

switch(flag_1)

Как говорит название флаг. В процессе вычислений в зависимости от решения он переходит на 1 из значений флагов. Маркеров. Маркеры т.е. значения этого флага 3. Это "zero", "BUY", "SELL"

string flag_1 = "zero";

void OnTick()
  {
switch(flag_1)
     {

      case "zero":
  .............
...............
break;
     case "BUY":
 .............
...............
 break;
    case "SELL":
 .............
...............
 break;
return;
}
}

И вот прям все ему не нравится. Ни само название flag_1, ни его значения. Как этом можно исправить? Не хочется цифрами заставляться. Визуально сложнее воспринимается если там одни циферки будут х = 1, 2, или 3. :( Текстовые метки не разрешены?

-------------------------------

// Удалить старую отложку
            OrderDelete(OrderBufer_B[i].ticket,clrRed);
            if(OrderSelect(OrderBufer_B[i].ticket,SELECT_BY_TICKET,MODE_TRADES) = true)
              {
               OrderDelete(OrderBufer_B[i].ticket,clrRed);
              }  // повторить

Ошибки

return value of 'OrderDelete' should be checked

'OrderSelect' - l-value required

'=' - l-value required

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

Я понимаю, что если речь про ордера по рынку скупить/продать сейчас, то во время новостей когда серв освободится, цена уже может далеко уйти и тогда заявка не исполнится.




 
Gilmor:

Заранее извиняюсь. Еще пару вопросиков.

Подскажите там, где понять просто не могу. MQL4


Вроде какие ошибки? А он выдает.

'OnTick' - function declarations are allowed on global, namespace or class scope only

'OnTick' - function already defined and has body

see previous declaration of function 'OnTick'

'}' - unexpected end of program

При этом т.к. он подсвечивает скобки, то я перепроверил. Это именно закрывающая скобка функции 'OnTick'.

До этой функции только объявление переменных и int OnInit(), void OnDeinit(const int reason)

-----------------------------

Спионерил с просторов данного форума простое решение для закрытия всех ордеров.

Выдает желтый значек и просит перепроверить возвращаемое значение. Так вроде мне не нужно ничего проверять о возвращении... О чем он намекает?

------------------------------

Оператор switch

Прекрасная вещь переключалка.  Выражение сделал

Как говорит название флаг. В процессе вычислений в зависимости от решения он переходит на 1 из значений флагов. Маркеров. Маркеры т.е. значения этого флага 3. Это "zero", "BUY", "SELL"

И вот прям все ему не нравится. Ни само название flag_1, ни его значения. Как этом можно исправить? Не хочется цифрами заставляться. Визуально сложнее воспринимается если там одни циферки будут х = 1, 2, или 3. :( Текстовые метки не разрешены?

-------------------------------

Ошибки

return value of 'OrderDelete' should be checked

'OrderSelect' - l-value required

'=' - l-value required

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

Я понимаю, что если речь про ордера по рынку скупить/продать сейчас, то во время новостей когда серв освободится, цена уже может далеко уйти и тогда заявка не исполнится.




результаты OrderSend, OrderDelete, OrderClose, OrderModify должны проверяться. Это просто правила приличия, возведённые в ранг warnings.

А ошибки "lvalue" - это ваши любимые перепутыши сравнений и присваиваний.

PS/ ну не учите вы программирование по MT. MT - это суровый приклад.

 
Gilmor:

Заранее извиняюсь. Еще пару вопросиков.

Подскажите там, где понять просто не могу. MQL4


Вроде какие ошибки? А он выдает.

'OnTick' - function declarations are allowed on global, namespace or class scope only

'OnTick' - function already defined and has body

see previous declaration of function 'OnTick'

'}' - unexpected end of program

При этом т.к. он подсвечивает скобки, то я перепроверил. Это именно закрывающая скобка функции 'OnTick'.

До этой функции только объявление переменных и int OnInit(), void OnDeinit(const int reason)

-----------------------------

Спионерил с просторов данного форума простое решение для закрытия всех ордеров.

Выдает желтый значек и просит перепроверить возвращаемое значение. Так вроде мне не нужно ничего проверять о возвращении... О чем он намекает?

------------------------------

Оператор switch

Прекрасная вещь переключалка.  Выражение сделал

Как говорит название флаг. В процессе вычислений в зависимости от решения он переходит на 1 из значений флагов. Маркеров. Маркеры т.е. значения этого флага 3. Это "zero", "BUY", "SELL"

И вот прям все ему не нравится. Ни само название flag_1, ни его значения. Как этом можно исправить? Не хочется цифрами заставляться. Визуально сложнее воспринимается если там одни циферки будут х = 1, 2, или 3. :( Текстовые метки не разрешены?

-------------------------------

Ошибки

return value of 'OrderDelete' should be checked

'OrderSelect' - l-value required

'=' - l-value required

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

Я понимаю, что если речь про ордера по рынку скупить/продать сейчас, то во время новостей когда серв освободится, цена уже может далеко уйти и тогда заявка не исполнится.




У вас 2 функции   OnTick


Выражение оператора switch должно быть целого типа.

 
Artyom Trishkin:

Да, создайте отдельную тему. Только постарайтесь правильно выбрать раздел форума, в котором создадите тему.

Да, хорошо. "MQL4 и MetaTrader 4" подойдёт? Или лучше в "Индикаторы"?
Причина обращения: