Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1168

 
Сейчас уточнил, спрэд по инструменту в районе 0,02 что должна вернуть в этом случае?
[Удален]  
VANDER:
Сейчас уточнил, спрэд по инструменту в районе 0,02 что должна вернуть в этом случае?

У кого уточнил?

 
VANDER:
Сейчас уточнил, спрэд по инструменту в районе  0,02 что должна вернуть в этом случае?

Так не бывает

 

Ну вот так например

//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
MqlTick Last;
int sp1[1];
double sp2;
//+------------------------------------------------------------------+
int OnInit()
  {return(INIT_SUCCEEDED);}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  { }
//+------------------------------------------------------------------+
void OnTick()
  {
   CopySpread("BR-2.20",PERIOD_CURRENT,0,1,sp1);
   SymbolInfoTick("BR-2.20",Last);
   sp2=Last.ask-Last.bid;
   Print((string)sp1[0]+", "+(string)sp2);
  }
//+------------------------------------------------------------------+

2020.01.03 21:16:32.818 Spred (BR-2.20,M1) 1, 0.01000000000000512

2020.01.03 21:16:32.824 Spred (BR-2.20,M1) 1, 0.02000000000001023

2020.01.03 21:16:33.830 Spred (BR-2.20,M1) 1, 0.02000000000001023

2020.01.03 21:16:34.371 Spred (BR-2.20,M1) 1, 0.01000000000000512

2020.01.03 21:16:34.466 Spred (BR-2.20,M1) 1, 0.01000000000000512

2020.01.03 21:16:34.570 Spred (BR-2.20,M1) 1, 0.009999999999990905

2020.01.03 21:16:34.585 Spred (BR-2.20,M1) 1, 0.009999999999990905

2020.01.03 21:16:34.591 Spred (BR-2.20,M1) 1, 0.01999999999999602

2020.01.03 21:16:34.629 Spred (BR-2.20,M1) 1, 0.009999999999990905

2020.01.03 21:16:35.321 Spred (BR-2.20,M1) 1, 0.01999999999999602

2020.01.03 21:16:35.335 Spred (BR-2.20,M1) 1, 0.01999999999999602

2020.01.03 21:16:35.352 Spred (BR-2.20,M1) 1, 0.01999999999999602

2020.01.03 21:16:35.684 Spred (BR-2.20,M1) 1, 0.01999999999999602

2020.01.03 21:16:35.790 Spred (BR-2.20,M1) 1, 0.009999999999990905

2020.01.03 21:16:35.981 Spred (BR-2.20,M1) 1, 0.009999999999990905

2020.01.03 21:16:36.220 Spred (BR-2.20,M1) 1, 0.01000000000000512

2020.01.03 21:16:36.235 Spred (BR-2.20,M1) 1, 0.01999999999999602

2020.01.03 21:16:36.311 Spred (BR-2.20,M1) 1, 0.009999999999990905

2020.01.03 21:16:36.769 Spred (BR-2.20,M1) 1, 0.009999999999990905

2020.01.03 21:16:37.373 Spred (BR-2.20,M1) 1, 0.01999999999999602

2020.01.03 21:16:38.049 Spred (BR-2.20,M1) 1, 0.01999999999999602


 
VANDER:

Ну вот так например

Это не спред дробный, а разница цен Ask и Bid.

Разделите sp2 на SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE) и получите спред.

 
А разве разница между аск и бид не есть спрэд? В любом случае спасибо, разобрался.
 
VANDER:
А разве разница между аск и бид не есть спрэд? В любом случае спасибо, разобрался.

Именно спред. Но в разных "поставках"... В пунктах и в котировках.

 
Здравствуйте! Подскажите пожалуйста по индикатору "Simple Moving Average". Вопрос такой, как в его исходном коде сделать так, чтобы он рассчитывал значение только для первого тика бара? Например, на дневном графике EUR/USD рынок открывается в 00.00 и в самый первый тик рынка SMA например с периодом 10 показывает среднюю цену 1,11347. Но к 00.15 цена вместе со скользящей средней может уже улететь далеко вверх или вниз, а самое первое значение SMA 1,11347 потеряется. В общем, как сделать так, чтобы SMA замерла на месте и показывала только самый первый тик 1,11347 и не двигалась вместе с рынком, а перерасчет SMA происходил только с каждой новой свечей таймфрейма. Что в исходнике Moving Average нужно изменить? Это реально? Или это уже технологии следующего тысячелетия? Помогите гуманитарию))
 
Александр:
Здравствуйте! Подскажите пожалуйста по индикатору "Simple Moving Average". Вопрос такой, как в его исходном коде сделать так, чтобы он рассчитывал значение только для первого тика бара? Например, на дневном графике EUR/USD рынок открывается в 00.00 и в самый первый тик рынка SMA например с периодом 10 показывает среднюю цену 1,11347. Но к 00.15 цена вместе со скользящей средней может уже улететь далеко вверх или вниз, а самое первое значение SMA 1,11347 потеряется. В общем, как сделать так, чтобы SMA замерла на месте и показывала только самый первый тик 1,11347 и не двигалась вместе с рынком, а перерасчет SMA происходил только с каждой новой свечей таймфрейма. Что в исходнике Moving Average нужно изменить? Это реально? Или это уже технологии следующего тысячелетия? Помогите гуманитарию))
Необходимо на глобальном программном уровне объявить переменную с типом datetame (в ней будет храниться время открытия бара.
Остаётся только сравнивать эту переменную со временем текущего бара: если они одинаковы - ничего не делать, если разные - один раз рассчитать индикатор и переписать время в переменной. 

Почитайте статьи в которых есть фраза “пересчёт нулевого бара»
 

обещание :

1

https://www.metatrader5.com/ru/terminal/help/algotrading/strategy_optimization




а это как работает :

2



Нажал стоп, поставил комп в спящий режим. Вывел из спящего режима, нажал старт.