Страницы: 1
Ответить

Описание разработок FSS - советники, индикаторы, скрипты

 
FSS Quick multiple buy

"FSS Quick multiple buy" – это скрипт, который предусмотрен для того, чтобы быстро открыть множество позиций на покупку в торговом терминале MetaTrader 4.

Параметры:

OrderCount – определяет какое количество позиций необходимо открыть;
StopLoss – начальный уровень ограничения убытков;
StopLossStep – заданная величина, на которую увеличивается Stop Loss, с каждой последующей открытой позицией. Если в увеличении уровня Stop Loss нет необходимости, в таком случае параметр StopLossStep должен быть равен 0;
TakeProfit – начальный уровень прибыли;
TakeProfitStep - заданная величина, на которую увеличивается Take Profit, с каждой последующей открытой позицией. Если в увеличении уровня Take Profit нет необходимости, в таком случае параметр TakeProfitStep должен быть равен 0;
Lots – торговый объём;
ECN – если пользуетесь услугами ECN брокера, в таком случае необходимо выбрать TRUE, если не используете ECN брокера FALSE. Если не уверены ECN брокер или нет, оставьте значение FALSE;
Comm – комментарий.

//+------------------------------------------------------------------+
//| FSS quick multiple buy.mq4 |
//| ForexSoftwareShop |
//| http://www.forexsoftwareshop.com |
//+------------------------------------------------------------------+
#property copyright "ForexSoftwareShop"
#property link "http://www.forexsoftwareshop.com"
#property show_inputs

#include <stdlib.mqh>

extern int OrderCount = 3;
extern double StopLoss = 0.005;
extern double StopLossStep = 0;
extern double TakeProfit = 0.002;
extern double TakeProfitStep = 0.003;
extern double Lots = 0.01;
extern bool ECN = FALSE;
extern string Comm = "FSS_quick_multiple_buy";

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
int ticket, cnt, error;
ticket = 0;
for(cnt = 0; cnt < OrderCount; cnt++ )
{
RefreshRates();
if (ECN == FALSE) ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask - StopLoss, Ask + TakeProfit, Comm, 123654);

if (ticket == -1 || ECN == TRUE)
{
error = GetLastError();
if(error == 130/* INVALID_STOPS */ || ECN == TRUE)
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, Comm, 123654);
if(ticket>0)
{
OrderSelect(ticket, SELECT_BY_TICKET);
if(OrderModify(OrderTicket(), OrderOpenPrice(), Ask - StopLoss, Ask + TakeProfit,0) == FALSE) ticket = -1;
}
if(ticket == -1)
{
error = GetLastError();
Print("Error nr.: ",error," Error Description: ",ErrorDescription(error));
}
} else Print("Error nr.: ",error," Error Description: ",ErrorDescription(error));
} // ticket == -1

StopLoss = StopLoss + StopLossStep;
TakeProfit = TakeProfit + TakeProfitStep;
}
//----
return(0);
}
//+------------------------------------------------------------------+
Страницы: 1
Ответить
Читают тему (гостей: 1)

Вход