Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Станислав

Страницы: 1 2 [3]
81
TradeStation / EasyLanguage
« : 14 Сентября 2016, 11:38:16 »
Может кто-нибудь сталкивался с подобным (TS9.1)...
Создаю TextLabel TLabel, потом хочу изменить цену положения этого объекта, но увы, не работает:

If LastBarOnChart AND TLabel <> Null Then TLabel.PointValue.Price = GetAppInfo(aiHighestDispValue);

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

82
TradeStation / TradeStation 9.5
« : 15 Марта 2016, 16:55:14 »
0x409 стоит, спасибо.
Проблема появляется, когда ставлю стратегию на график, а просто графики рисуются нормально.

У меня была как раз в этом, и так как вы описали!
А количество полей верно?

83
TradeStation / TradeStation 9.5
« : 15 Марта 2016, 16:21:54 »
Станислав пишет, что у него были такие же проблемы, и я так понял, что он ее исправил.
А у меня проблема остается.

Я же написал, где посмотреть, повторим:
1. открываем C:\attributes.ini
2. находим строчку с нужным символом
3. в конце строки проверяем наличие в последнем поле 0x409
У меня была такая проблема из-за отсутствия 0x409 в последнем поле строки символа!


CHMF,STOCK,DD/MM/YYYY,MICEX,1/10,1,1,1000,1840,MTWRF,ModeEQNL:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot10,,,,,,,,,0x409
VTBR,STOCK,DD/MM/YYYY,MICEX,1/100000,1,1,1000,1840,MTWRF,ModeEQBR:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot10000,,,,,,,,,0x409
GBP,STOCK,MM/DD/YYYY,FX,1/10000,1,10000,0000,0000,MTWRF,"",,,,,,,,,0x409
EUR,STOCK,MM/DD/YYYY,FX,1/10000,1,10000,0000,0000,MTWRF,"",,,,,,,,,0x409
CHF,STOCK,MM/DD/YYYY,FX,1/10000,1,10000,0000,0000,MTWRF,"",,,,,,,,,0x409

а было так и была эта же проблема

CHF,STOCK,MM/DD/YYYY,FX,1/10000,1,10000,0000,0000,MTWRF,"",,,,,,,,,

84
TradeStation / TradeStation 9.5
« : 15 Марта 2016, 15:15:27 »
Просветите пож, что это ?
Открываю график EUR-60.TXT, загружаю стратегию.
График не открывается, в верхнем левом углу поочередно мигают строки:
Waiting for data... ,  Waiting for attributes...
Убираю сиратегию - график снова отображается.

в файле C:\attributes.ini в конце строки с параметрами каждого символа стоит 0x409 !?! У меня было тоже самое при первом общении с TS9.X, неправильно заполнены параметры актива в указанном файле!

SYMBOL,CATEGORY,DATE FORMAT,EXCHANGE,PRICE SCALE,MINIMUM MOVEMENT,BIG POINT VALUE,SESSION 1 START TIME,SESSION 1 END TIME,SESSION 1 DAYS,DESCRIPTION,SESSION 2 START TIME,SESSION 2 END TIME,SESSION 2 DAYS,OPTION TYPE,STRIKE PRICE,DAILY LIMIT,MARGIN,EXPIRATION DATE,LOCALE
CHMF,STOCK,DD/MM/YYYY,MICEX,1/10,1,1,1000,1840,MTWRF,ModeEQNL:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot10,,,,,,,,,0x409

85
TradeStation / TradeStation 9.5
« : 14 Марта 2016, 11:50:04 »
Конструкция (см.ниже) работает коряво, очень коряво по сравнению с 9.1! Компенсируется скоростью выполнения расчётов.

#Region "..."
 // Code
#EndRegion

86
TradeStation / TradeStation 9.5
« : 14 Марта 2016, 11:34:35 »
И еще замечание по поводу того стоит ли пускаться во все тяжкие. TS 9.5 не дает каких-то значительных улучшений для ручного теханализа. Для меня TS 9.1 удобнее, чем TS 9.5. Однако ускорение оптимизации МТС, за счет загрузки всех ядер, позволяет на порядки ускорить оптимизацию МТС. Так же можно сделать робота, который будет сам оптимизировать одну или несколько МТС на любом числе символов/интервалов/типов графиков. Так что TS 9.5 - для тех, кто хочет ускорить разработку и настройку МТС. Остальные могут не париться.

Подскажите, для работы в RealTime она пока не адаптирована?

87
TradeStation / TradeStation 9.5
« : 14 Марта 2016, 10:38:49 »
Эх, началось в колхозе утро... ;D
Перегонка..

Копипаст решает проблему полностью. :)

Только закончил этот увлекательный процесс ;D

88
TradeStation / TradeStation 9.5
« : 14 Марта 2016, 10:10:32 »
Эх, началось в колхозе утро... ;D
Перегонка..

89
TradeStation / TradeStation 9.5
« : 14 Марта 2016, 10:05:19 »
Спасибо! С установкой проблем нет! Используя настройки TS9.1 в TS9.5 возникают проблемы, которых в TS9.1 не было...

1. не отображается название биржи (ММВБ) рядом с названием актива, вместо "ММВБ" отображаются четыре "?"
   C:\Program Files (x86)\TradeStation 9.1\CAL
     ММВБ,35
     FX, 48

2. не читается параметр Discription из файла C:\attributes.ini
SYMBOL,CATEGORY,DATE FORMAT,EXCHANGE,PRICE SCALE,MINIMUM MOVEMENT,BIG POINT VALUE,SESSION 1 START TIME,SESSION 1 END TIME,SESSION 1 DAYS,DESCRIPTION,SESSION 2 START TIME,SESSION 2 END TIME,SESSION 2 DAYS,OPTION TYPE,STRIKE PRICE,DAILY LIMIT,MARGIN,EXPIRATION DATE,LOCALE
CHMF,STOCK,DD/MM/YYYY,ММВБ,1/10,1,1,1000,1840,MTWRF,ModeEQNL:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot10,,,,,,,,,0x409
FEES,STOCK,DD/MM/YYYY,ММВБ,1/100000,1,1,1000,1840,MTWRF,ModeEQNL:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot10000,,,,,,,,,0x409
GAZP,STOCK,DD/MM/YYYY,ММВБ,1/100,1,1,1000,1840,MTWRF,ModeEQNE:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot10,,,,,,,,,0x409
GMKN,STOCK,DD/MM/YYYY,ММВБ,as is,1,1,1000,1840,MTWRF,ModeEQBS:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot1,,,,,,,,,0x409
GRAZ,STOCK,DD/MM/YYYY,ММВБ,1/100,1,1,1000,1840,MTWRF,ModeEQNL:Lvrg2:Slpp5:Sprt1.00:Dir1:Lot100,,,,,,,,,0x409

От TS 9.1 не подойдет, они перешли на юникод. Напишите на английском вместо русского.

3. неверное время торговой сессии, теряются последние 4 часа, но это скорее связано с п.1., возможно с п.2

Сессию можно либо скопировать из TS 9.1, либо ручками создать. Восстановление настроек из TS 9.1 в TS 9.5 работает через встроенный бэкап самой TS.

Спасибо!
Мои подозрения + ваши рекомендации оправдались, юникод косячит :( Заменил ММВБ на MICEX и всё стало ОК!
я сразу так и сделал, начисто поставил 9.5, а потом сделал Restore из архива 9.1, но не думал, что они сделают через юникод, потом стали подбираться подозрения, сейчас проверил, так оно и есть! ММВБ было единственное Русское слово в коде и настройках...

90
TradeStation / TradeStation 9.5
« : 14 Марта 2016, 08:18:26 »
Удалось кому-нибудь запустить TS 9.5? Есь проблемы с запуском или все понятно?

Спасибо! С установкой проблем нет! Используя настройки TS9.1 в TS9.5 возникают проблемы, которых в TS9.1 не было...

1. не отображается название биржи (ММВБ) рядом с названием актива, вместо "ММВБ" отображаются четыре "?"
   C:\Program Files (x86)\TradeStation 9.1\CAL
     ММВБ,35
     FX, 48

2. не читается параметр Discription из файла C:\attributes.ini
SYMBOL,CATEGORY,DATE FORMAT,EXCHANGE,PRICE SCALE,MINIMUM MOVEMENT,BIG POINT VALUE,SESSION 1 START TIME,SESSION 1 END TIME,SESSION 1 DAYS,DESCRIPTION,SESSION 2 START TIME,SESSION 2 END TIME,SESSION 2 DAYS,OPTION TYPE,STRIKE PRICE,DAILY LIMIT,MARGIN,EXPIRATION DATE,LOCALE
CHMF,STOCK,DD/MM/YYYY,ММВБ,1/10,1,1,1000,1840,MTWRF,ModeEQNL:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot10,,,,,,,,,0x409
FEES,STOCK,DD/MM/YYYY,ММВБ,1/100000,1,1,1000,1840,MTWRF,ModeEQNL:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot10000,,,,,,,,,0x409
GAZP,STOCK,DD/MM/YYYY,ММВБ,1/100,1,1,1000,1840,MTWRF,ModeEQNE:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot10,,,,,,,,,0x409
GMKN,STOCK,DD/MM/YYYY,ММВБ,as is,1,1,1000,1840,MTWRF,ModeEQBS:Lvrg2:Slpp5:Sprt1.00:Dir0:Lot1,,,,,,,,,0x409
GRAZ,STOCK,DD/MM/YYYY,ММВБ,1/100,1,1,1000,1840,MTWRF,ModeEQNL:Lvrg2:Slpp5:Sprt1.00:Dir1:Lot100,,,,,,,,,0x409

3. неверное время торговой сессии, теряются последние 4 часа, но это скорее связано с п.1., возможно с п.2

Пока с этим разбираюсь...

по оптимизации запуска, удобно закинуть активатор в автозагрузку!

91
TradeStation / EasyLanguage
« : 12 Марта 2016, 17:26:36 »
Считываем файл и сохраняем поля файла в массив, который в последствии будем обрабатывать. Если обработка не нужна, можно сразу заполнять информацию в ячейки экселя...
Запускаем эксель, нажимаем Alt+F11, вставляем в соответствующие Sub():

         Open(File_wrk) For Input As #1
         Do Until EOF(1)
            Line Input #1, Value
            FileText = FileText & Value           ‘здесь можно сразу сохранять в двумерный массив добавив счетчик прочитанных строк
         Loop
         Close #1

Для удобства обработки создаем меню и назначаем горячие клавиши...
СОЗДАНИЕ МЕНЮ:

Option Explicit                                                                                    'Обязательное объявление переменных
Option Compare Text                                                                                'Обработка текстовых значений без учёта регистра

Sub s_ГРМеню()
   Call f_ГРМеню(CBCReset:=False)
End Sub
Function f_ГРМеню(Optional ByVal CBCReset As Boolean)
   Dim i   As Byte
   Dim CBC As Variant
   Dim Msg As Variant

   'Удалить главное меню
   If CBCReset = True Then
      If CommandBars(1).Controls.Count > 0 Then CommandBars(1).Reset
      If CommandBars("Cell").Controls.Count > 0 Then CommandBars("Cell").Reset
      Exit Function
   End If

   'Создать главное меню
   For i = 1 To 2 Step 1: DoEvents
      Select Case i
         Case 1: Msg = 1
         Case 2: Msg = "Cell"
      End Select

      'CommandBars(Msg).Reset

      CBC = False
      For Each CBC In CommandBars(Msg).Controls: DoEvents
         If InStr(CBC.Caption, "ГрафикРабот") > 0 Then
            CBC = True
            Exit For
         End If
      Next CBC

      If CBC = False Then
         With CommandBars(Msg).Controls.Add(Type:=msoControlPopup, Temporary:=True)
            .Caption = "ГрафикРабот"
            .Visible = True
            With .Controls
               'Директории и файлы
               With .Add(Type:=msoControlPopup, Temporary:=True)
                  .Caption = "Директории и файлы"
                  With .Controls
                     With .Add(Type:=msoControlButton): .FaceId = 303: .BeginGroup = False: .Caption = "Текущая структура директорий": .OnAction = "s_ГРСтруктураДиректорийСкан":    End With
                     With .Add(Type:=msoControlButton): .FaceId = 464: .BeginGroup = False: .Caption = "Удалить структуру директорий": .OnAction = "s_ГРСтруктураДиректорийУдалить": End With
                     With .Add(Type:=msoControlButton): .FaceId = 462: .BeginGroup = False: .Caption = "Создать структуру директорий": .OnAction = "s_ГРСтруктураДиректорийСоздать": End With
                     With .Add(Type:=msoControlButton): .FaceId = 313: .BeginGroup = False: .Caption = "Менеджер файлов":              .OnAction = "s_ГРМенеджерФайлов":             End With
                     With .Add(Type:=msoControlButton): .FaceId = 790: .BeginGroup = False: .Caption = "Менеджер гиперссылок":         .OnAction = "s_ГРМенеджерГиперссылок":        End With
                  End With
               End With
            End With
         End With
      End If
   Next i
End Function



Sub s_ГРГорячиеКлавиши()
   Call f_ГРГорячиеКлавиши(CBCReset:=False)
End Sub
Function f_ГРГорячиеКлавиши(Optional ByVal CBCReset As Boolean)
   Dim i   As Double
   Dim CBC As Variant
   Dim Msg As Variant

   CBC = ""
   Call f_Администрирование
   For Each CBC In CommandBars("Cell").Controls("ГрафикРабот").Controls: DoEvents
      If InStr(CBC.Caption, "горячие клавиши") > 0 Then
         CBC = CBC.Caption
         Exit For
      End If
   Next CBC
   If CBC = "" Then Exit Function

   If InStr(CBC, "Отключить горячие клавиши") > 0 Then
      For i = 1 To 2 Step 1: DoEvents
         If i = 1 Then Msg = 1 Else _
         If i = 2 Then Msg = "Cell"

         If InStr(CBC, "Отключить горячие клавиши") = 0 Then Exit For
         With CommandBars(Msg).Controls("ГрафикРабот").Controls("Отключить горячие клавиши")
            .FaceId = 1087
            .Caption = "Включить горячие клавиши"
            .OnAction = "s_ГРГорячиеКлавиши"
         End With
      Next i

      'Создать
      Application.OnKey Key:="^%{l}", Procedure:=""                                                'Лист:               Ctrl+Alt  +l"
      Application.OnKey Key:="^%{t}", Procedure:=""                                                'Шаблон:             Ctrl+Alt  +t"
      Application.OnKey Key:="^%{y}", Procedure:=""                                                'Копия:              Ctrl+Alt  +y"
      Application.OnKey Key:="^%{p}", Procedure:=""                                                'Параметры:          Ctrl+Alt  +p"
      Application.OnKey Key:="^%{d}", Procedure:=""                                                'Диаграмма:          Ctrl+Alt  +d"
      Application.OnKey Key:="^%{s}", Procedure:=""                                                'Горизонт:           Ctrl+Alt  +s"
   Else

   If InStr(CBC, "Включить горячие клавиши") > 0 Then
      For i = 1 To 2 Step 1: DoEvents
         If i = 1 Then Msg = 1 Else _
         If i = 2 Then Msg = "Cell"

         If InStr(CBC, "Включить горячие клавиши") = 0 Then Exit For
         With CommandBars(Msg).Controls("ГрафикРабот").Controls("Включить горячие клавиши")
            .FaceId = 1088
            .Caption = "Отключить горячие клавиши"
            .OnAction = "s_ГРГорячиеКлавиши"
         End With
      Next i

      'Создать
      Application.OnKey Key:="^%{l}", Procedure:="s_ГРЛист"                                        'Лист:               Ctrl+Alt  +l"
      Application.OnKey Key:="^%{t}", Procedure:="s_ГРШаблон"                                      'Шаблон:             Ctrl+Alt  +t"
      Application.OnKey Key:="^%{y}", Procedure:="s_ГРКопия"                                       'Копия:              Ctrl+Alt  +y"
      Application.OnKey Key:="^%{p}", Procedure:="s_ГРСоздатьПараметры"                            'Параметры:          Ctrl+Alt  +p"
      Application.OnKey Key:="^%{d}", Procedure:="s_ГРСоздатьДиаграмма"                            'Диаграмма:          Ctrl+Alt  +d"
      Application.OnKey Key:="^%{s}", Procedure:="s_ГРСоздатьСводка"                               'Горизонт:           Ctrl+Alt  +s"
   End If
   End If
End Function



Function f_CreateMenuFaceID()                                                                      'Создание меню ЗНАЧКИ с образцами кнопок панели инструментов
   Dim CBC         As CommandBarControl
   Dim NewMenu     As CommandBarPopup
   Dim MenuItem1   As CommandBarControl
   Dim MenuItem2   As CommandBarControl
   Dim SubMenuItem As CommandBarButton
   Dim MaxCount    As Long
   Dim MaxGroup    As Long
   Dim i           As Long
   Dim j           As Long
   Dim k           As Long
   Dim n           As Long

   For Each CBC In CommandBars(1).Controls: DoEvents
      If CBC.Caption = "Значки" Then CBC.Delete
   Next CBC

   Set NewMenu = CommandBars(1).Controls.Add(Type:=msoControlPopup, Temporary:=True)
   NewMenu.Caption = "Значки"
   MaxCount = 40
   MaxGroup = 8
   n = MaxGroup * MaxCount
   For j = 0 To 20 Step 1: DoEvents
      Set MenuItem1 = NewMenu.Controls.Add(Type:=msoControlPopup)
      With MenuItem1
         .Caption = j * n + 1 & " - " & (j + 1) * n
         .BeginGroup = True
      End With
      For i = 0 To MaxGroup - 1 Step 1: DoEvents
         Set MenuItem2 = MenuItem1.Controls.Add(Type:=msoControlPopup)
         MenuItem2.Caption = 1 + j * n + MaxCount * i & " - " & j * n + MaxCount * (i + 1)
         For k = j * n + 1 + MaxCount * i To j * n + MaxCount * (i + 1) Step 1: DoEvents
            Set SubMenuItem = MenuItem2.Controls.Add(Type:=msoControlButton)
            With SubMenuItem
               .Caption = "FaceId = " & k
               .FaceId = k
            End With
            DoEvents
         Next k
         DoEvents
      Next i
   Next j
   Set NewMenu = Nothing
   Set MenuItem1 = Nothing
   Set MenuItem2 = Nothing
   Set SubMenuItem = Nothing
End Function




92
TradeStation / EasyLanguage
« : 19 Января 2016, 19:13:41 »
Возможно кому-нибудь пригодится  :)

93
TradeStation / EasyLanguage
« : 19 Января 2016, 19:10:27 »
Возможно кому-нибудь пригодится :)

94
TradeStation / EasyLanguage
« : 03 Марта 2015, 16:37:24 »
Возможно куму-то пригодиться эта качественная инструкция...

95
TradeStation / Puls
« : 29 Августа 2013, 12:16:46 »
возможно проблема не в Win7 х64!? у меня уже как год работает старый пульс, единственный нюанс - на TS8.7

96
TradeStation / Puls
« : 19 Февраля 2013, 09:22:16 »
Если так, то да, думал, что если из одного места экспорт, то в месте получения уже ничего не требуется)

Такая уж специфика хранения float (single) переменных в текстовом файле. Проблема не большая, что-то менять пока не вижу смысла. TS9 поддерживает числа double. Может со временем на них придется перейти.

в таком случае перешёл на передачу посредством SeriesSetStr, а потом конвертация числовых значений в текстовые, чтоб визуально не сбивало и было всё синхронно, как в окне пульса, так и в прочих приложениях! Спасибо!))

97
TradeStation / Puls
« : 19 Февраля 2013, 07:53:53 »
Из Puls назад вы ведь данные получаете тоже с правильными значениями?

Отображение в окне Puls связано с хранением значений типа single в текстовом виде. В серии могут храниться любые данные, поэтому и форматируются числа  с максимальным числом знаков после запятой.

эта проблема возникла, когда я из стратегии передавал данные в индикатор посредством пульса, из стратегии передаю в пульс значение стопа с округлением до 2 знаков, а в индикаторе получаю без округления.

Округляйте в индикаторе до 2 знаков и будет тоже самое.

Если так, то да, думал, что если из одного места экспорт, то в месте получения уже ничего не требуется)

98
TradeStation / Puls
« : 19 Февраля 2013, 07:04:28 »
Из Puls назад вы ведь данные получаете тоже с правильными значениями?

Отображение в окне Puls связано с хранением значений типа single в текстовом виде. В серии могут храниться любые данные, поэтому и форматируются числа  с максимальным числом знаков после запятой.

эта проблема возникла, когда я из стратегии передавал данные в индикатор посредством пульса, из стратегии передаю в пульс значение стопа с округлением до 2 знаков, а в индикаторе получаю без округления.

99
TradeStation / Puls
« : 19 Февраля 2013, 07:01:37 »
Из Puls назад вы ведь данные получаете тоже с правильными значениями?

Отображение в окне Puls связано с хранением значений типа single в текстовом виде. В серии могут храниться любые данные, поэтому и форматируются числа  с максимальным числом знаков после запятой.

например, если данные отправляются  в пульс с округлением до 2 знаков, то и получаться из пульса они должны с округлением до 2 знаков?

100
TradeStation / Puls
« : 19 Февраля 2013, 06:59:42 »
Из Puls назад вы ведь данные получаете тоже с правильными значениями?

Отображение в окне Puls связано с хранением значений типа single в текстовом виде. В серии могут храниться любые данные, поэтому и форматируются числа  с максимальным числом знаков после запятой.

в этом и проблема, например, в пульс данные отправляются с округлением до 2 знаков, в пульсе они хранятся когда как, где-то до 2 знаков, а где-то более, потом когда получаю данные  - они в формате окна пульса, т.е. получаю без округления.

101
TradeStation / Puls
« : 19 Февраля 2013, 05:07:33 »
Обнаружил непонятную для меня проблему с пульсом, суть такова...
Экспортирую в серию данные округлённые до 2 знаков после запятой, в пульсе они с непонятной точность до 5-7 знаков после запятой. Проверил через LogViewer, там округление проходит верно, а в серии пульса нет. В связи с чем такое может быть и как с этим бороться или это проблема в пульсе?

102
TradeStation / TradeStation - обновления
« : 26 Декабря 2012, 04:52:22 »
https://gelium.net/ru/component/docman/doc_download/148-ts91update
Добрый день! Ставлю это обновление и не работает лекарство, как с этим справиться? новое лекарство под каждое обновление?

103
TradeStation / Puls
« : 11 Сентября 2012, 00:52:22 »
подскажите, а как с этой проблемой справиться в windows 7? пробовал по аналогии - безрезультатно((

Спасибо, но не помогло(( когда я копирую код из TS в текстовый файл с нормальными русскими комментариями, в текстовом файле комментарии преобразуются в îïòèìèçàöèÿ такие символы(( в ХР было 1 к 1!

104
TradeStation / Puls
« : 10 Сентября 2012, 11:13:58 »
подскажите, а как с этой проблемой справиться в windows 7? пробовал по аналогии - безрезультатно((


помогло

ветка HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\

изменил ключи
1250 REG_SZ c_1250.nls
1252 REG_SZ c_1252.nls
1253 REG_SZ c_1253.nls

на
1250 REG_SZ c_1251.nls
1252 REG_SZ c_1251.nls
1253 REG_SZ c_1251.nls

спасибо

105
TradeStation / EasyLanguage
« : 04 Февраля 2012, 11:24:56 »
может имеет смысл завести ветку по easylanguage?

что бы делиться полезностями типа такого:

при работе с текстами постоянно приходится иметь в уме количество десятых если необходимо вывести ценовое значение
а ежели использовать такой код
if PriceScale = 100000 then autodecimal = 5 else
if PriceScale = 10000  then autodecimal = 4 else
If PriceScale = 1000   then autodecimal = 3 else
If PriceScale = 100    then autodecimal = 2 else
If PriceScale = 10     then autodecimal = 1 else
If PriceScale = 1      then autodecimal = 0;
введя переменную autodecimal и подставляя её как второй параметр в NumToStr, будем автоматически иметь правильное отображение цены
можно оформить в функцию

Можно еще проще и универсальней: ;D

{***************************************************************************************************
Функция предназначена для определения ценовой доли актива (количества знаков дробной части)
***************************************************************************************************}

Vars: Val1(MinMove / PriceScale),
      Val2(Round(0.123456789 / Val1, 0)),
      Val3(IFF(Val2 = 0, 0, StrLen(NumToStr(Val2, 0))));

PFDigits = Val3;



{***************************************************************************************************
Функция предназначена для округления значения переменной до ценовой доли актива
***************************************************************************************************}

Inputs: Value(Numeric);

PFRound = Round(Value, PFDigits);



Например, значение Value0 = PFRound(Close / 3) будет округлено до ценовой доли.

Страницы: 1 2 [3]