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

 
Maxim Kuznetsov #:

у меня в местном блоге можете посмотреть.

Прямую ссылку на публикацию модераторы воспринимают как рекламу, поэтому так - ищите и обрящете :-)

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

Или такое только в советниках можно...
 
Ivan Butko #:
Можно ли в скрипте задать правило "если сделка откроется, то по достижению ценой N профита - перевести в безубыток" ?

Или такое только в советниках можно...

Можно скриптом, но есть небольшое НО, вам нужно постоянно находится у компьютера.

Скрипты загружаются сразу после прикрепления к графику и выгружаются сразу после окончания своей работы

Лучше всё это оформить в виде советника.

 
Ivan Butko #:
Можно ли в скрипте задать правило "если сделка откроется, то по достижению ценой N профита - перевести в безубыток" ?

Или такое только в советниках можно...

можно разместить сразу встречный STOPLIMIT , стоповую часть на уровне "по достижению профита", лимитную - на уровне Б/У

 
Alekseu Fedotov #:

Можно скриптом, но есть небольшое НО, вам нужно постоянно находится у компьютера.

Скрипты загружаются сразу после прикрепления к графику и выгружаются сразу после окончания своей работы

Лучше всё это оформить в виде советника.

Maxim Kuznetsov #:

можно разместить сразу встречный STOPLIMIT , стоповую часть на уровне "по достижению профита", лимитную - на уровне Б/У

Спасибо!

Такой момент: написал условие "Если торговля запрещена - вывести в журнал". 
Запускаю советник, он пишет в журнал "Торговл запрещена". Но, как только я нажимаю "Разрешить торговлю" (кнопку), то... всё равно с каждым новым(!) тиком он продолжает писать, что торговля запрещена. 


Print(IsTradeAllowed());

2023.03.20 11:35:50.915 EA EURUSD,M1: false

 
Принт и не должен выдавать вам булевую переменную, сделайте у себя в коде 1 или 0  IsTradeAllowed() переменную и распринтуйте и будет всё ОК
 

На этом примере всё правильно работает и отображает

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

int Trade;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(60);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(IsTradeAllowed()== True)
      Trade=1;
   else
      Trade =0;
   Print(Trade);
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   if(IsTradeAllowed()== True)
      Trade=1;
   else
      Trade =0;
   Print(Trade);
  }
//+------------------------------------------------------------------+
 
Volodymyr Zubov #:
Принт и не должен выдавать вам булевую переменную, сделайте у себя в коде 1 или 0  IsTradeAllowed() переменную и распринтуйте и будет всё ОК

Бред какой-то.


void OnStart()
  {
   Print(true);
   Print(false);
  }


Print_True_False

 
Я тогда незнаю ответа на вопрос. Делаю всегда подстраховку привожу к 1 или 0
Причина обращения: