MetaTrader 4 Client Terminal build 610 - страница 14

 

Равноценно замене на просто Sell и просто Buy. Если цена их зацепит.

 
Забавляет, что mql4setup теперь вываливается прямо из форума.
 
С одним различием - вместе со Stop ордером можно установить stop loss. Но для стопового ордера это ограничение не смертельно.
 
Если есть такие проблемы - меняйте дилера.
 
MT4_EXPORT_FUNC int InitDLL ( wchar_t* CompanyName_, wchar_t * ServerName_, wchar_t *TerminalPath_, __int64 AccountNumber_ )


#import "Connect.dll"
int      InitDLL ( string CompanyName_, string ServerName_, string TerminalPath_, long AccountNumber_ );
#import 

int OnInit()
{
        string _TerminalPatch  = TerminalInfoString ( TERMINAL_PATH   );
        long   _AccountNumber  = AccountInfoInteger ( ACCOUNT_LOGIN   );
        string _AccountServer  = AccountInfoString  ( ACCOUNT_SERVER  );
        string _AccountCompany = AccountInfoString  ( ACCOUNT_COMPANY );

        while ( ! IsStopped() && _ID == -1 )
        {
                Sleep ( 1000 );
Print ( 		_AccountCompany ); // результат верный
Print ( 		_AccountServer );  // результат верный

// Вариант 1 работает
                ID = InitDLL ( AccountInfoString  ( ACCOUNT_COMPANY ), AccountInfoString  ( ACCOUNT_SERVER  ), _TerminalInfoString ( TERMINAL_PATH   ), _AccountNumber );
// Вариант 2 на стороне DLL все три ссылки на строковых параметра равны т.е. (wchar_t*)CompanyName_ == (wchar_t*)ServerName_ == (wchar_t*)TerminalPath_
                ID = InitDLL ( _AccountCompany, _AccountServer, _TerminalPatch, _AccountNumber );
// Вариант 3 на стороне DLL две ссылки на строковых параметра равны т.е. (wchar_t*)ServerName_ == (wchar_t*)TerminalPath_
                ID = InitDLL ( _AccountInfoString  ( ACCOUNT_COMPANY ), _AccountServer, _TerminalPatch, _AccountNumber );
        }
return INIT_SUCCEEDED;
}
Вариант 1 работает


Вариант 2 на стороне DLL все три ссылки на строковых параметра равны т.е. (wchar_t*)CompanyName_ == (wchar_t*)ServerName_ == (wchar_t*)TerminalPath_

Вариант 3 на стороне DLL две ссылки на строковых параметра равны т.е. (wchar_t*)ServerName_ == (wchar_t*)TerminalPath_

заметил только в 610, в 604 все работало

 
Pavlick:
Выставить хуже рынка, это не не позволяет клиентская часть терминала.
Такие ордера называются стоплимитный - есть практически в любой биржевой платформе или через API
в мт4/5 таких нет и видимо не планируется
 
VOLDEMAR:
компильте длл в режиме статики ....

это даст не таскать связанные dll и врят ли решит вопрос с нарушением лицензии
 
GSB:

Ну парни даете, Читайте хоть справку по нвомому билду:

Экспортирование функций

Данный модификатор указывает компилятору внести функцию в таблицу EX4-функций, экспортируемых данным исполняемым ex4-файлом. Только функции с таким модификатором становятся доступными ("видимыми") из других mql4-программ.

Свойство library указывает компилятору, что данный EX4-файл будет являться библиотекой, и компилятор проставит это в заголовке EX4.

Все функции, которые планируются как экспортируемые, должны быть помечены модификатором export.

Да я пытался прочесть, но там так много буковок, что я не осилил до конца...

А если серьёзно, то просто действительно не вникал на необходимый уровень и не дошёл до прочтения этого раздела. Сейчас так много нового, что не успеваю. Спасибо за подсказку. Сразу нашёл об этом в справке и прочёл.


ps; Ну, что-ж. Почитал, поэкспериментировал, посмотрел stdlib.mqh и stdlib.mq4, нигде нет export и всё работает. Может это важно для dll но не для ех4 библиотек?

В своём коде ошибку нашёл. Как всегда, спасибо старому МЕ который позволял делать такие ошибки как переменной для хранения времени назначить тип int

Странно только, что новый МЕ не отлавливает такие ошибки на стадии компиляции...


 
Pavlick:

Т.е. я не могу отправить sell limit ниже bid, а buy limit выше ask.


Товарищ, у вас полный бардак с типом ордеров (либо с терминологией). Вы в точности до наоборот попутали лимит-приказы со стоп-приказами. Нельзя селлимит поставить ниже бида. Если говорить о сел, то ниже бида можно поставить только селстоп, а селлимит можно поставить только выше бида.
 
Vladon:


оказывается не предотвращается.

код прикрепил.


Почему не сообщаете подробности? Сейчас позову знакомого телепата.

Вы прикрепили индикатор, а не эксперт. Индикаторы у нас пока не тестируются. Значит Вы запускаете любого эксперта на визуальное тестирование. А на графике визуального тестирования прикреплён данный индикатор, который не знает, что его тестируют.

Подумаем, что можно сделать.

Причина обращения: