Регистр торговых символов

 
Например: EURJPY и eurjpy

Заметил случайно...
Вставил в код скрипта eurjpy, ан нет... ругатся нет такого символа (в журнале терминала)

Ну лень было... просматривал стейт и оттуда копирнул... :)

Сделать бы:
- регистронезависим для кода
- везде где выводится инфа, история счёта например, вот так EURJPY

Заранее благодарю...


Попутно:
Есть например в коде
extern int StopLoss=20; 
extern int TakeProfit=20;


удаляю спецом ету часть, компилирую... ноль внимания фунт презрения... :(
даж не ругнётся и говорит что всё ОК !
Билд едитора 200.


 


Попутно:
Есть например в коде
extern int StopLoss=20; 
extern int TakeProfit=20;


удаляю спецом ету часть, компилирую... ноль внимания фунт презрения... :(
даж не ругнётся и говорит что всё ОК !
Билд едитора 200.





А в тексте скрипта используются эти переменные?
 
Используются...

// Скрипт 
#include <WinUser32.mqh> 
#property show_inputs

extern double lots=1;
extern int StopLoss=15; 
extern int TakeProfit=0;

void start() 
   { 
   // ---- 
   double lots=0.1; 
   int StopLoss=30; 
   int TakeProfit=11; 
   // ----  
   int ticket; 
   int slippage=3; 
   double bid, ask, point, loss, profit; 
   // ---- 
   bid=MarketInfo("USDCAD",MODE_BID); 
   point=MarketInfo("USDCAD",MODE_POINT); 
   loss=0  ; if (StopLoss  >0) loss  =bid+StopLoss  *point; 
   profit=0; if (TakeProfit>0) profit=bid-TakeProfit*point; 
   ticket=OrderSend("USDCAD",OP_SELL,lots,bid,slippage,loss,profit,"",0,0,CLR_NONE); 
   if (ticket<1) Print("Error = ",GetLastError()); 
   // ---- 
   bid=MarketInfo("USDCHF",MODE_BID); 
   point=MarketInfo("USDCHF",MODE_POINT); 
   loss=0  ; if (StopLoss  >0) loss  =bid+StopLoss  *point; 
   profit=0; if (TakeProfit>0) profit=bid-TakeProfit*point; 
   ticket=OrderSend("USDCHF",OP_SELL,lots,bid,slippage,loss,profit,"",0,0,CLR_NONE); 
   if (ticket<1) Print("Error = ",GetLastError()); 
   // ---- 
   bid=MarketInfo("USDJPY",MODE_BID); 
   point=MarketInfo("USDJPY",MODE_POINT); 
   loss=0  ; if (StopLoss  >0) loss  =bid+StopLoss  *point; 
   profit=0; if (TakeProfit>0) profit=bid-TakeProfit*point; 
   ticket=OrderSend("USDJPY",OP_SELL,lots,bid,slippage,loss,profit,"",0,0,CLR_NONE); 
   if (ticket<1) Print("Error = ",GetLastError()); 
   } 



Странно... НО тогда другой вопрос.
Почему едитор не ругнулся на то что переменные назначаются повторно???

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

 
Потому что объявление пременных на глобальном уровне и на локальном уровне (внутри функции) - две большие разницы. Они друг о друге ничего не знают. Читайте справку.
 

Сделать бы:
- регистронезависим для кода
- везде где выводится инфа, история счёта например, вот так EURJPY

Символы всегда регистрозависимые. Менять не будем.
 
На этом примере скрипта много чего узнал...
Да и справку читаю. (точнее почитываю... ;) )

Потому что объявление пременных на глобальном уровне и на локальном уровне (внутри функции) - две большие разницы. Они друг о друге ничего не знают. Читайте справку.

extern будет "главнее" в этом случае?



Символы всегда регистрозависимые. Менять не будем.

Даже в том виде как они представлены в "Обзоре рынка" ?

В прочем... Ваше право...
Спасибо.
Всем.
 
Символы всегда регистрозависимые. Менять не будем.

Даже в том виде как они представлены в "Обзоре рынка" ?

Есть ДЦ с символами mUSDJPY.

Для решения Вашего вопроса предлагаю функции для латиницы.
//+------------------------------------------------------------------+
//|  Возвращает строку в нижнем регистре                             |
//+------------------------------------------------------------------+
string StringLower(string s) {
  int c, i, k=StringLen(s), n;
  for (i=0; i<k; i++) {
    n=0;
    c=StringGetChar(s, i);
    if (c>64 && c<91) n=c+32;    // A-Z -> a-z
    if (n>0) s=StringSetChar(s, i, n);
  }
  return(s);
}

//+------------------------------------------------------------------+
//|  Возвращает строку в ВЕРХНЕМ регистре                            |
//+------------------------------------------------------------------+
string StringUpper(string s) {
  int c, i, k=StringLen(s), n;
  for (i=0; i<k; i++) {
    n=0;
    c=StringGetChar(s, i);
    if (c>96 && c<123) n=c-32;    // a-z -> A-Z
    if (n>0) s=StringSetChar(s, i, n);
  }
  return(s);
}
 
Есть ДЦ с символами mUSDJPY.


Да... но и musdjpy одновременно с mUSDJPY быть не может.
А значит регистронезависимость не помешает...

Ну ладно с этим понятно, разрабочикам виднее, тем более это касается кода.
Но вот что то есть разница между "Обзором рынка" и списком терминала это загадка... ;)



Кстати...
уж сделали бы для окна терминала копирование строки в буфер и таскание мышом тож.
бывает надо "показать" открытую позицию, и только через сохранение истории карячится...
А ещё...
При удалении писем из ящика не прыгало снова в начало списка.
Есть некоторые ДЦ прям письмотираны... шлют по поводу и без.
И когда начинаеш удалять то... мягко гря устаёш... :)
А так-же...
Ладно. Шютка.
В общем в закладках окна терминал можно було бы копирнуть строку.

ЗЫ: простите... уже написал пост и вспомнил...
А что? теперь символ из "Обзор рынка" нельзя кидать на таб графиков??? 8(((
Только на заголовок графика и самого терминала?

Уфф... сорри...
 
А что? теперь символ из "Обзор рынка" нельзя кидать на таб графиков??? 8(((
Только на заголовок графика и самого терминала?

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

Поддерживаю! Эта функция бывает нужна:)
Причина обращения: