Общие вопросы по разработке > Узнать текущее количество денег
-
- Сообщения: 534
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 91 раз
Re: Узнать текущее количество денег
Спасибо за информацию.
> AddGlobalVariable("log", Types.String, @"C:\ADebug\out_"+ DateTime.Now.ToString("yyMMdd_HHmmss") + ".txt");
А что это за синтаксис такой с собакой? В документации такого нет.
Где-то можно о нем прочесть? И где еще его можно применить в мирных целях?
> Action
То же самое.
Выходит, можно какую-то даже локальную подпрограмму соорудить.
Как тогда насчет её параметров и возвращаемого значения? (хотя бы теоретически)
Или это что-то стандартное для .NET (с которым я никогда не работал)?
> RealizedPLAfterCommission()
Хмм... Тонкий намек на то, что документированная RealizedPL не учитывает комиссию?..
> обратитесь к разработчикам
К сожалению, вероятность ответа оттуда обычно стремится к нулю.
---------------------------------------------------
Просмотр дизассемблированной MTS дает следующие реализации ф-ций:
.method public hidebysig newslot virtual instance float64 GetMoney() cil managed
{
IL_0000: ldarg.0
IL_0001: call instance float64 MTS.MTSWorker::get_StartCapital()
IL_0006: ret
} // end of method MTSWorker::GetMoney
.method public hidebysig virtual instance float64 GetMoney() cil managed
{
IL_0000: ldarg.0
IL_0001: call instance float64 MTS.MTSWorker::get_ProfitLossAfterCommission()
IL_0006: ret
} // end of method MTSWorkerTesting::GetMoney
Судя по именам, первое - для реальной торговли (или базовый класс для нее), второе - перекрытый метод для тестирования.
Видно, что в тестировании вместо начального количества денег берется почему-то РЕЗУЛЬТАТ торговли. Даже если каким-то волшебством это есть правильное значение (что сомнительно), то оно появляется только после операции. А на старте (где мне хочется знать объем запускаемых денег) результаты нулевые из-за отсутствия этих самых операций.
---------------------------------
Еще раз о том, чего хочу добиться.
При внутредневной торговле прекратить операции после достижения целевой прибыли (в % по отношению к исходной сумме в начале дня) с учетом накладных расходов. Для этого в тестировании хочу знать начальную сумму. Вроде всё просто, но как-то не вытанцовывается...
> AddGlobalVariable("log", Types.String, @"C:\ADebug\out_"+ DateTime.Now.ToString("yyMMdd_HHmmss") + ".txt");
А что это за синтаксис такой с собакой? В документации такого нет.
Где-то можно о нем прочесть? И где еще его можно применить в мирных целях?
> Action
То же самое.
Выходит, можно какую-то даже локальную подпрограмму соорудить.
Как тогда насчет её параметров и возвращаемого значения? (хотя бы теоретически)
Или это что-то стандартное для .NET (с которым я никогда не работал)?
> RealizedPLAfterCommission()
Хмм... Тонкий намек на то, что документированная RealizedPL не учитывает комиссию?..
> обратитесь к разработчикам
К сожалению, вероятность ответа оттуда обычно стремится к нулю.
---------------------------------------------------
Просмотр дизассемблированной MTS дает следующие реализации ф-ций:
.method public hidebysig newslot virtual instance float64 GetMoney() cil managed
{
IL_0000: ldarg.0
IL_0001: call instance float64 MTS.MTSWorker::get_StartCapital()
IL_0006: ret
} // end of method MTSWorker::GetMoney
.method public hidebysig virtual instance float64 GetMoney() cil managed
{
IL_0000: ldarg.0
IL_0001: call instance float64 MTS.MTSWorker::get_ProfitLossAfterCommission()
IL_0006: ret
} // end of method MTSWorkerTesting::GetMoney
Судя по именам, первое - для реальной торговли (или базовый класс для нее), второе - перекрытый метод для тестирования.
Видно, что в тестировании вместо начального количества денег берется почему-то РЕЗУЛЬТАТ торговли. Даже если каким-то волшебством это есть правильное значение (что сомнительно), то оно появляется только после операции. А на старте (где мне хочется знать объем запускаемых денег) результаты нулевые из-за отсутствия этих самых операций.
---------------------------------
Еще раз о том, чего хочу добиться.
При внутредневной торговле прекратить операции после достижения целевой прибыли (в % по отношению к исходной сумме в начале дня) с учетом накладных расходов. Для этого в тестировании хочу знать начальную сумму. Вроде всё просто, но как-то не вытанцовывается...
Последний раз редактировалось BugsDigger 16 дек 2018, 21:50, всего редактировалось 2 раза.
- Indigo-On
- Сообщения: 61
- Зарегистрирован: 28 ноя 2018, 18:44
- Откуда: Russia
- Благодарил (а): 24 раза
- Поблагодарили: 9 раз
Re: Узнать текущее количество денег
BugsDigger писал(а):> AddGlobalVariable("log", Types.String, @"C:\ADebug\out_"+ DateTime.Now.ToString("yyMMdd_HHmmss") + ".txt");
А что это за синтаксис такой с собакой? В документации такого нет.
Где-то можно о нем прочесть? И где еще его можно применить в мирных целях?
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/strings/
-
- Сообщения: 534
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 91 раз
Re: Узнать текущее количество денег
ОК, спасибо за ссылку.
Что вы думаете насчет моих "раскопок" в MTS.dll ?
Что вы думаете насчет моих "раскопок" в MTS.dll ?
-
- Сообщения: 170
- Зарегистрирован: 18 дек 2017, 08:18
- Благодарил (а): 12 раз
- Поблагодарили: 8 раз
Re: Узнать текущее количество денег
Доброго времени суток, BugsDigger
@ — буквальный идентификатор
Action
RealizedPLAfterCommission () – возвращает текущий реализованный доход по закрытым сделкам робота после вычета всех комиссий (стратегии).
Или вам есть, мало, что я сказал, и вы решили взять еще, ну так что, вам хватило - (из еврейской народной мудрости, но полностью не помню).
Продолжу.
Задача любого программиста поиск оптимальных решений и упрощение вычислительных задач.
Для получения данных, вы ищете функцию(формулу), а вы попробуйте используя известные, чтобы получить необходимые, потом ...
С наилучшими пожеланиями
Можно применить в мирных целях:BugsDigger писал(а):А что это за синтаксис такой с собакой? В документации такого нет.
Где-то можно о нем прочесть? И где еще его можно применить в мирных целях?
@ — буквальный идентификатор
Action
► Показать
BugsDigger писал(а):Выходит, можно какую-то даже локальную подпрограмму соорудить.
Как тогда насчет её параметров и возвращаемого значения? (хотя бы теоретически)
Или это что-то стандартное для .NET (с которым я никогда не работал)?
► Показать
Терминал 4.0. Скрипты пользовательских индикаторов и стратегийBugsDigger писал(а):> RealizedPLAfterCommission()
Хмм... Тонкий намек на то, что документированная RealizedPL не учитывает комиссию?..
RealizedPLAfterCommission () – возвращает текущий реализованный доход по закрытым сделкам робота после вычета всех комиссий (стратегии).
Здесь, я точно ничем не могу помочь.BugsDigger писал(а):> обратитесь к разработчикам
К сожалению, вероятность ответа оттуда обычно стремится к нулю.
У меня к вам дружеский совет, не трогайте вы ildasm, решайте свои задачи, а править код, почетная обязанность разработчиков.BugsDigger писал(а):Просмотр дизассемблированной MTS дает следующие реализации ф-ций:
Или вам есть, мало, что я сказал, и вы решили взять еще, ну так что, вам хватило - (из еврейской народной мудрости, но полностью не помню).
Продолжу.
Зачем вам "атомный реактор", если вы батарейку в фонарик хотите поставить.Indigo-On писал(а): ...ковыряется в API с дебаггером наперевес...
Задача любого программиста поиск оптимальных решений и упрощение вычислительных задач.
Для получения данных, вы ищете функцию(формулу), а вы попробуйте используя известные, чтобы получить необходимые, потом ...
А я что другое говорил , но вы почти не о том или не туда и это тема другого форума.BugsDigger писал(а):Судя по именам, первое - для реальной торговли (или базовый класс для нее), второе - перекрытый метод для тестирования.
► Показать
► Показать
Последний раз редактировалось AP_Bor 17 дек 2018, 00:34, всего редактировалось 1 раз.
-
- Сообщения: 534
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 91 раз
Re: Узнать текущее количество денег
Привет, AP_Bor, спасибо за отклик.
> @ — буквальный идентификатор
> Action
Понятно. Негусто (без параметров и возвращаемого значения), но можно и такое приспособить при случае.
> Терминал 4.0. Скрипты пользовательских индикаторов и стратегий
Ха, да это новая версия (v.1.19 31.10.2018), в старой (у меня v.1.13 27.09.2017) этого нет!
Честно сказать, этот "продвинутый" плиточный стиль на https://www.alfadirect.ru/obuchenie - полная туфта для документации (IMHO). Не видно ни номеров версий документов, ни дат выпуска... Выходит, я должен их каждый день качать и проверять текущую версию?..
Если бы кто-то из более продвинутых и/или приближенных к разработчикам людей анонсировал бы на форуме новые версии что-ли.
Или на официальном сайте показывали даты/версии вместо слепых имен документов (вряд ли они станут на это заморачиваться; о том, что будет вестись history изменений в документации я вообще даже не заикаюсь).
> не трогайте вы ildasm, <...>, а править код - почетная обязанность разработчиков
Ну, я как неофит, имею зуд - это раз, а второе - я не с целью править что-то (думаю, это и невозможно), а чтобы разобраться в причине проблемы, в особенности в обстановке практически полного отсутствия информации/feedback.
> Задача любого программиста
Задачи программистов мне известны, т.к. я успешно программирую более 30 лет.
> вы ищете функцию(формулу), а вы попробуйте используя известные
Я как раз и попробовал (безрезультатно) все известные, прежде чем спрашивать.
------------------
А вопрос по-прежнему такой: как в режиме тестирования при внутридневной торговле после закрытия позиции узнать, что достигнут заданный % прибыли (убытка) по отношению к исходной сумме в начале дня. Только и всего. Есть работающее решение через известные ф-ции? Даже лайка не пожалею. RealizedPLAfterCommission - это прекрасно, но где взять базу для вычисления %? GetMoney в тестировании не работает должным образом, причину этого мне, кажется, даже удалось выяснить.
------------------
> Не сорите лайками
Вот уж не думал, что это какой-то особо ценный ресурс.
> @ — буквальный идентификатор
> Action
Понятно. Негусто (без параметров и возвращаемого значения), но можно и такое приспособить при случае.
> Терминал 4.0. Скрипты пользовательских индикаторов и стратегий
Ха, да это новая версия (v.1.19 31.10.2018), в старой (у меня v.1.13 27.09.2017) этого нет!
Честно сказать, этот "продвинутый" плиточный стиль на https://www.alfadirect.ru/obuchenie - полная туфта для документации (IMHO). Не видно ни номеров версий документов, ни дат выпуска... Выходит, я должен их каждый день качать и проверять текущую версию?..
Если бы кто-то из более продвинутых и/или приближенных к разработчикам людей анонсировал бы на форуме новые версии что-ли.
Или на официальном сайте показывали даты/версии вместо слепых имен документов (вряд ли они станут на это заморачиваться; о том, что будет вестись history изменений в документации я вообще даже не заикаюсь).
> не трогайте вы ildasm, <...>, а править код - почетная обязанность разработчиков
Ну, я как неофит, имею зуд - это раз, а второе - я не с целью править что-то (думаю, это и невозможно), а чтобы разобраться в причине проблемы, в особенности в обстановке практически полного отсутствия информации/feedback.
> Задача любого программиста
Задачи программистов мне известны, т.к. я успешно программирую более 30 лет.
> вы ищете функцию(формулу), а вы попробуйте используя известные
Я как раз и попробовал (безрезультатно) все известные, прежде чем спрашивать.
------------------
А вопрос по-прежнему такой: как в режиме тестирования при внутридневной торговле после закрытия позиции узнать, что достигнут заданный % прибыли (убытка) по отношению к исходной сумме в начале дня. Только и всего. Есть работающее решение через известные ф-ции? Даже лайка не пожалею. RealizedPLAfterCommission - это прекрасно, но где взять базу для вычисления %? GetMoney в тестировании не работает должным образом, причину этого мне, кажется, даже удалось выяснить.
------------------
> Не сорите лайками
Вот уж не думал, что это какой-то особо ценный ресурс.
-
- Сообщения: 170
- Зарегистрирован: 18 дек 2017, 08:18
- Благодарил (а): 12 раз
- Поблагодарили: 8 раз
Re: Узнать текущее количество денег
Доброго времени суток, BugsDigger
Возраст - это болезнь, которая быстро проходит, главное, чтоб до его окончания было кому передать накопленный опыт. (не помню откуда)
Благодарность нужна, благодарящему.(не помню откуда)С наилучшими пожеланиями
Почитайте еще Делегаты Там много чего есть .BugsDigger писал(а):Понятно. Негусто (без параметров и возвращаемого значения), но можно и такое приспособить при случае.
FileVersionInfo.FileVersionBugsDigger писал(а):Ха, да это новая версия (v.1.19 31.10.2018), в старой (у меня v.1.13 27.09.2017) этого нет!
BugsDigger писал(а):...Честно сказать, этот "продвинутый" плиточный стиль...
► Показать
Ну и взялись за публикацию номеров версий и дат выпуска. Без обид, вашего стажа для этого хватит.BugsDigger писал(а):... полная туфта для документации (IMHO). Не видно ни номеров версий документов, ни дат выпуска... Выходит, я должен их каждый день качать и проверять текущую версию?...
Возраст - это болезнь, которая быстро проходит, главное, чтоб до его окончания было кому передать накопленный опыт. (не помню откуда)
"Кто-то из более продвинутых" перечислит различия, из более приближенных подскажет как использовать. И это будет уже какой-то особо ценный ресурс.BugsDigger писал(а):... т.к. я успешно программирую более 30 лет. ...
► Показать
А первое правило говорит, если у тебя все работает, ничего не меняй, даже не меняй.Я говорил, Не туда смотрите.BugsDigger писал(а):... а второе - я не с целью править что-то (думаю, это и невозможно) ...
А вы пробовали поискать, например как один из вариантов.BugsDigger писал(а):... А вопрос по-прежнему такой: как в режиме тестирования при внутридневной торговле после закрытия позиции узнать, что достигнут заданный % прибыли (убытка)...
Stop_SO_Signal.ads писал(а):Код: Выделить всё
// Стартовый капитал = максимальная позиция * стартовая цена
Нет конечно не ценный и уж точно не ресурс, хотя каждый труд должен иметь свою цену и приятно видеть, что твой труд ценят. Я хотел предложить удочку, а получилось продал рыбу, а лайки ставьте, если есть за что.BugsDigger писал(а):Вот уж не думал, что это какой-то особо ценный ресурс.
Благодарность нужна, благодарящему.(не помню откуда)
► Показать
-
- Сообщения: 534
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 91 раз
Re: Узнать текущее количество денег
> Ну и взялись за публикацию номеров версий и дат выпуска
viewtopic.php?f=5&t=462
> как один из вариантов.
> Стартовый капитал = максимальная позиция * стартовая цена
Да, для теста приемлемо.
Два момента:
1. лишний код, предназначенный исключительно для тестирования, т.к. я буду вынужден следить за суммой после каждой сделки (через RealizedPLAfterCommission по всей видимости, другого способа получить такую элементарную цифру, как текущее кол-во денег, не видно);
2. придется каждый раз модифицировать текст для реальной работы.
Сейчас я просто тупо захардкодил исходную сумму, ставлю такую же в тесте (+имею упомянутый выше п.1) . Если забыть о последующем переходе к реалу (пункт 2), этого достаточно.
А так просто поверить трудно, что такая очевидная (да еще и недокументированная вдобавок) ф-ция, как GetMoney. не работает как положено в тестировании...
viewtopic.php?f=5&t=462
> как один из вариантов.
> Стартовый капитал = максимальная позиция * стартовая цена
Да, для теста приемлемо.
Два момента:
1. лишний код, предназначенный исключительно для тестирования, т.к. я буду вынужден следить за суммой после каждой сделки (через RealizedPLAfterCommission по всей видимости, другого способа получить такую элементарную цифру, как текущее кол-во денег, не видно);
2. придется каждый раз модифицировать текст для реальной работы.
Сейчас я просто тупо захардкодил исходную сумму, ставлю такую же в тесте (+имею упомянутый выше п.1) . Если забыть о последующем переходе к реалу (пункт 2), этого достаточно.
А так просто поверить трудно, что такая очевидная (да еще и недокументированная вдобавок) ф-ция, как GetMoney. не работает как положено в тестировании...
-
- Сообщения: 170
- Зарегистрирован: 18 дек 2017, 08:18
- Благодарил (а): 12 раз
- Поблагодарили: 8 раз
Re: Узнать текущее количество денег
Доброго времени суток, BugsDigger
Вариантов, как минимум два.
Первый:
Второй:Зачет и лайк,BugsDigger писал(а):viewtopic.php?f=5&t=462
Она потому и недокументированная.BugsDigger писал(а):А так просто поверить трудно, что такая очевидная (да еще и недокументированная вдобавок) ф-ция, как GetMoney. не работает как положено в тестировании...
Вариантов, как минимум два.
Первый:
► Показать
Подумать, а так ли нам важен стартовый(доступный) капитал, может хватит вложенного(использованного)?
Ну не учить мне вас как получить процент от суммы.BugsDigger писал(а):Только и всего. Есть работающее решение через известные ф-ции? Даже лайка не пожалею.
Лайк, зажал или удочка мала.
С наилучшими пожеланиями