Торговые процедуры и функции.
Открытие, закрытие, модификация ордеров и позиций.
v0.0.0.25 от 2013.09.29
Внешние пользовательские переменные.
extern double TR_TwiseLots = 20.0; // Объем выставляемой позиции, после которого объем ордеров делится на два
Если нужно выставить отложенный ордер объемом 40 лотов, а дц ограничил максимальный объем ордера 20 лотами, то будет выставлено два ордера объемом по 20 лотов.
extern int TR_MN = 0; // Магический номер позиции.
Определения
#define TR_MODE_PRICE 1
#define TR_MODE_PIP 2
Процедуры и функции
int TR_SendBUYSTOP Функция выставления отложенного БайСтоп ордера. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
int TR_SendBUYSTOP_array Функция выставления отложенных БайСтоп ордеров. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера. Добавлено деление объемов ордеров до заданного объема.
Пояснение: выставление ордеров до заданного объема.
int TR_SendBUYLIMIT_array Функция выставления отложенных БайЛимит ордеров. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера. Добавлено деление объемов ордеров до заданного объема.
Пояснение: выставление ордеров до заданного объема.
int TR_SendBUYLIMIT Функция выставления отложенного БайЛимит ордера. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
int TR_SendSELLSTOP Функция выставления отложенного СеллСтоп ордера. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
int TR_SendSELLSTOP_array Функция выставления отложенных СеллСтоп ордеров. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера. Добавлено деление объемов ордеров до заданного объема.
int TR_SendSELLLIMIT_array Функция выставления отложенных СеллЛимит ордеров. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера. Добавлено деление объемов ордеров до заданного объема
int TR_SendSELLLIMIT Функция выставления отложенного СеллЛимит ордера. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
int TR_SendPendingLikeOrder Выставление похожего ордера в зависимости от цены. Если ордер-источник=бай и цена ниже цены ордера, то выставляется байстоп. Если ордер-источник=бай и цена выше цены ордера, то выставляется байлимит.
int TR_getReversType Получение типа ордера для выставления реверсного ордера (ордера в противоположном направлении) по заданному типу и на том же ценовом уровне, что и ордер-родитель.
int TR_SendREVERSOrder Выставление реверсных ордеров до заданного объема по заданному тикету-родителю.
_TR_CountOrdersToSend Расчет количества выставляемых ордеров при нужном объеме, превышающем максимально заданный объем. Максимальный объем задается в переменной TR_TwiseLots.
int _OrderSend Функция отправки закроса на открытие ордера на сервер. Основная функция выставления ордера.
Модификация ордеров
Процедуры и функции
bool _OrderModify Модификация рыночных и отложенных ордеров. Основная функция модификации ордеров и позиций.
bool TR_ModifyTP Модификация тейкпрофита ордера. Тейкпрофит может быть задан в пунктах от цены открытия ордера или ценовым уровнем.
Функция выставления отложенного БайСтоп ордера. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
[code=php]
int TR_SendBUYSTOP(double StartPrice, int AddPips = 0, double Vol = 0.01, int TPPip = 0, int SLPip = 0, string Comm = "", int Magic = -1){
/**
\version 0.0.1
\date 2013.04.22
\author Morochin Artiom
\details Функция выставления отложенного БайСтоп ордера.
Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом.
Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
\internal
>Hist:
@0.0.1@2013.04.22@artamir [] TR_SendBUYSTOP
*/
Функция выставления отложенных БайСтоп ордеров. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера. Добавлено деление объемов ордеров до заданного объема.
[code=php]
int TR_SendBUYSTOP_array(double &d[], double StartPrice, int AddPips = 0, double Vol = 0.01, int TPPip = 0, int SLPip = 0, string Comm = "", int Magic = -1){
/*
>Ver : 0.0.2
>Date : 2013.04.22
>Hist:
@0.0.2@2013.04.22@artamir [] TR_SendBUYSTOP_array
>Desc:
Функция выставления отложенных БайСтоп ордеров.
Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом.
Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
Добавлено деление объемов ордеров до заданного объема.
>VARS:
@double &d[]: массив, в котором возвращаются тикеты выставленных ордеров.
*/
Функция выставления отложенных БайЛимит ордеров. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера. Добавлено деление объемов ордеров до заданного объема.
Пояснение: выставление ордеров до заданного объема.
[code=php]
int TR_SendBUYLIMIT_array(double &d[], double StartPrice, int AddPips = 0, double Vol = 0.01, int TPPip = 0, int SLPip = 0, string Comm = "", int Magic = -1){
/*
>Ver : 0.0.3
>Date : 2013.04.22
>Hist:
@0.0.3@2013.04.22@artamir [] TR_SendBUYLIMIT_array
>Desc:
Функция выставления отложенных БайСтоп ордеров.
Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом.
Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
Добавлено деление объемов ордеров до заданного объема.
>VARS:
@double &d[]: массив, в котором возвращаются тикеты выставленных ордеров.
*/
Функция выставления отложенного БайЛимит ордера. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
[code=php]
int TR_SendBUYLIMIT(double StartPrice, int AddPips = 0, double Vol = 0.01, int TPPip = 0, int SLPip = 0, string Comm = "", int Magic = -1){
/*
>Ver : 0.0.1
>Date : 2012.07.31
>History:
@0.0.1@2012.07.31@artamir [+] Start
@0.0.1@2012.07.31@artamir [*] Добавлен расчет цены тп и сл исходя из цены выставления ордера.
>Description:
Функция выставления отложенного БайЛимит ордера.
Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом.
Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
*/
Функция выставления отложенного СеллСтоп ордера. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
[code=php]
int TR_SendSELLSTOP(double StartPrice, int AddPips = 0, double Vol = 0.01, int TPPip = 0, int SLPip = 0, string Comm = "", int Magic = -1){
/*
>Ver : 0.0.6
>Date : 2013.04.22
>History:
@0.0.6@2013.04.22@artamir [] TR_SendSELLSTOP
@0.0.5@2012.09.20@artamir []
@0.0.4@2012.09.14@artamir [+] libT_Start()
@0.0.3@2012.08.03@artamir [*] добавил аргументы функцц
@0.0.2@2012.08.03@artamir []
@0.0.2@2012.07.31@artamir [*] Исправил расчет стоплосса
@0.0.1@2012.07.31@artamir [*] Добавлен расчет цены тп и сл исходя из цены выставления ордера.
>Description:
Функция выставления отложенного СеллСтоп ордера.
Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом.
Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
*/
Функция выставления отложенных СеллСтоп ордеров. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера. Добавлено деление объемов ордеров до заданного объема.
[code=php]
int TR_SendSELLSTOP_array(double &d[], double StartPrice, int AddPips = 0, double Vol = 0.01, int TPPip = 0, int SLPip = 0, string Comm = "", int Magic = -1){
/*
>Ver : 0.0.1
>Date : 2013.02.22
>Hist:
>Desc:
Функция выставления отложенных БайСтоп ордеров.
Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом.
Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
Добавлено деление объемов ордеров до заданного объема.
>VARS:
@double &d[]: массив, в котором возвращаются тикеты выставленных ордеров.
*/
Функция выставления отложенных СеллЛимит ордеров. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера. Добавлено деление объемов ордеров до заданного объема.
[code=php]
int TR_SendSELLLIMIT_array(double &d[], double StartPrice, int AddPips = 0, double Vol = 0.01, int TPPip = 0, int SLPip = 0, string Comm = "", int Magic = -1){
/*
>Ver : 0.0.2
>Date : 2013.02.26
>Hist:
>Desc:
Функция выставления отложенных БайСтоп ордеров.
Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом.
Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
Добавлено деление объемов ордеров до заданного объема.
>VARS:
@double &d[]: массив, в котором возвращаются тикеты выставленных ордеров.
*/
Функция выставления отложенного СеллЛимит ордера. Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом. Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
[code=php]
int TR_SendSELLLIMIT(double StartPrice, int AddPips = 0, double Vol = 0.01, int TPPip = 0, int SLPip = 0, string Comm = "", int Magic = -1){
/*
>Ver : 0.0.1
>Date : 2012.08.03
>History:
@0.0.1@2012.08.03@artamir [*] Добавил аргументы функции
@0.0.2@2012.07.31@artamir [*] Исправил расчет стоплосса
@0.0.1@2012.07.31@artamir [*] Добавлен расчет цены тп и сл исходя из цены выставления ордера.
>Description:
Функция выставления отложенного СеллЛимит ордера.
Для брокеров, которые поддерживают выставление ордера с заданными тейкпрофитом и стоплоссом.
Тейкпрофит и стоплосс рассчитываются исходя из цены выставления ордера.
*/
//------------------------------------------------------
StartPrice = Norm_symb(OrderOpenPrice());
Comm = Comm + OrderTicket();
Type = OrderType();
Lot = OrderLots()*lot_multi;
Magic = OrderMagicNumber();
Получение типа ордера для выставления реверсного ордера (ордера в противоположном направлении) по заданному типу и на том же ценовом уровне, что и ордер-родитель.
[code=php]
int TR_getReversType(int src_ty = -1){
/*
>Ver : 0.0.2
>Date : 2013.02.26
>Hist :
>Author : Morochin Artiom
>Desc : Получение типа ордера для выставления реверсного ордера (ордера в противоположном направлении) по заданному типу и на том же ценовом уровне, что и ордер-родитель.
*/
Расчет количества выставляемых ордеров при нужном объеме, превышающем максимально заданный объем. Максимальный объем задается в переменной TR_TwiseLots.
[code=php]
int _TR_CountOrdersToSend(double all_vol = 0){
/*
>Ver : 0.0.0.1
>Date :
2013.07.02
>Hist :
@0.0.0.1@2013.07.02@artamir [] изменен алгоритм нахождения количества выставляемых ордеров.
>Author : Morochin Artiom
>Desc : Расчет количества выставляемых ордеров при нужном объеме, превышающем максимально заданный объем. Максимальный объем задается в переменной TR_TwiseLots.
*/
//-----------------------------------------------------------
// Блок проверок на правильность переданных параметров.
//-----------------------------------------------------------
//=============================================
// Check symbol
//=============================================
if(symbol == ""){
//если не задан нструмент, тогда используем текущий
symbol = Symbol();
}