FSS | Дата: Понедельник, 31.10.2011, 16:45 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
| 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); } //+------------------------------------------------------------------+
|
|
| |