The Puncher
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «thepuncher.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
The Puncher — торговый советник для MetaTrader 4, разработанный CreativeSilence, Inc. (2008). Советник анализирует ценовые данные с использованием стандартных технических индикаторов (Стохастик и RSI) для формирования сигналов на открытие и закрытие позиций. Поддерживает торговые операции через встроенные API MetaTrader 4.
Советник предоставляет гибкую настройку параметров торговли, включая объём позиции, уровни стоп-лосса и тейк-профита, а также механизмы управления рисками — трейлинг-стоп и безубыток. Доступны системы уведомлений через всплывающие окна, звуковые сигналы и электронную почту.
Дополнительные возможности включают логирование торговых операций в ежедневные файлы, отображение информационных текстов на графике и фильтрацию ордеров по магическому номеру. Торговля может быть настроена на открытие в реальном времени или по закрытию свечи.
Настройки программы
| Настройка | Описание |
|---|---|
| Lots | Размер лота — Размер лота (объём позиции) для открытия торговых операций. |
| StopLoss | Стоп-лосс — Расстояние до уровня стоп-лосса в пунктах. |
| TakeProfit | Тейк-профит — Расстояние до уровня тейк-профита в пунктах. |
| TradeAtCloseBar | Торговля по закрытию свечи — Переключатель между торговлей по закрытию свечи и торговлей в реальном времени. |
| TrailingStop | Трейлинг-стоп — Расстояние до начала срабатывания трейлинг-стопа в пунктах. |
| Trailing step (TrailingStep) | Шаг трейлинг-стопа — Шаг сдвига трейлинг-стопа в пунктах. |
| BreakEven | Безубыток — Расстояние в пунктах для перевода позиции в безубыток. |
| MagicNumber | Магический номер — Магический номер для идентификации ордеров, открытых советником. |
| Repeat | Повтор уведомлений — Количество повторений уведомлений для одного торгового сигнала. |
| Periods | Период уведомлений — Интервал времени между повторными уведомлениями в секундах. |
| UseAlert | Всплывающие уведомления — Включение или выключение всплывающих уведомлений. |
| SendEmail | Отправка email — Включение или выключение отправки уведомлений по электронной почте. |
| Slippage | Проскальзывание — Допустимое отклонение цены (проскальзывание) в пунктах. |
| Crash | Аварийный режим — Переключатель аварийного режима работы советника. |
| TimeFrame | Таймфрейм — Таймфрейм для анализа (0 — текущий). |
| Length | Длина — Параметр длины для расчёта индикатора. |
| Method | Метод расчёта — Метод расчёта индикатора. |
| Smoothing | Сглаживание — Метод сглаживания индикатора. |
| Filter | Фильтр — Параметр фильтра для индикатора. |
| RealTime | Реальное время — Переключатель режима реального времени. |
| Steady | Стабильный режим — Переключатель стабильного режима работы советника. |
| Color | Цветовое отображение — Включение или выключение цветового отображения на графике. |
| Alerts | Уведомления — Включение и выключение системы уведомлений советника. |
| EmailON | Email-уведомления — Включение или выключение отправки уведомлений по электронной почте. |
| SignalPrice | Цена сигнала — Отображение цены сигнала на графике. |
| SignalPriceBUY | Цена покупки — Цвет маркера сигнала покупки на графике. |
| SignalPriceSELL | Цена продажи — Цвет маркера сигнала продажи на графике. |
| CountBars | Количество баров — Количество баров для анализа с правого края графика. |
Поиск по коду файла
#define OrderStr "The Puncher By L.Bigger AKA Silence"
extern double Lots = 200;
extern int StopLoss = 2000;
extern int TakeProfit = 0;
extern bool TradeAtCloseBar = true;
extern int TrailingStop = 0;
extern int TrailingStep = 1; //Trailing step
extern int BreakEven = 0;
extern int MagicNumber=0;
extern int Repeat=3;
extern int Periods=5;
extern bool UseAlert=false;
extern bool SendEmail=true;
extern string
TradeLog="MasterMind";
extern int Slippage = 3;
int mm = -1;
double Risk = 1;
int Crepeat=0;
int AlertTime=0;
double AheadTradeSec = 0;
double AheadExitSec = 0;
int TradeBar = 0;
double MaxTradeTime = 300;
extern string
Indicator_Setting = "---------- Indicator Setting";
extern bool Crash = false;
extern int TimeFrame = 0;
extern int Length = 5;
extern int Method = 3;
extern int Smoothing = 1;
extern int Filter = 5;
extern bool RealTime = true;
extern bool Steady = false;
extern bool Color = true;
extern bool Alerts = true;
extern bool EmailON = false;
extern bool SignalPrice = true;
extern color SignalPriceBUY = Yellow;
extern color SignalPriceSELL = Aqua;
extern int CountBars = 1485;
int
NumberOfTries = 5, //Number of tries to set, close orders;
RetryTime = 1;
double
Ilo = 0;
int DotLoc=7;
static int TradeLast=0;
string sound="alert.wav";
double sig_buy=0, sig_sell=0, sig_high=0, sig_low=0;
int Spread=0;
string filename="";
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
void SetText(int X1, double Y1, string TEXT_NAME, string TEXT_VALUE, int TEXT_COLOR) {
return;
if(ObjectFind(TEXT_NAME) != 0)
{
ObjectCreate(TEXT_NAME, OBJ_TEXT, 0, X1, Y1);
ObjectSet(TEXT_NAME,OBJPROP_COLOR,TEXT_COLOR);
ObjectSetText(TEXT_NAME, TEXT_VALUE, 10, "Wingdings", EMPTY);
}
else
{
ObjectMove(TEXT_NAME, 0, X1, Y1);
}
}
void Alerts(int _buy, int _sell, int _exitbuy, int _exitsell, double _op, double _sl, double _tp, int _ticket) {
string AlertStr="";
AlertStr="";
string CurDate="";
CurDate=TimeToStr(CurTime(),TIME_DATE|TIME_MINUTES);
if (UseAlert)
{
if (_buy==1)
{
if (Crepeat==Repeat)
{
AlertTime=0;
}
if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
{
if (_buy==1) {
AlertStr=AlertStr+"Buy @ "+DoubleToStr(_op,Digits)+"; SL: "+DoubleToStr(_sl,Digits)+"; TP: "+DoubleToStr(_tp,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+".";
Alert(Symbol()," ",Period(), ": ",AlertStr);
if (SendEmail)
{
SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
}
Crepeat=Crepeat-1;
AlertTime=CurTime();
}
}
}
if (_sell==1)
{
if (Crepeat==Repeat)
{
AlertTime=0;
}
if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
{
if (_sell==1) {
AlertStr=AlertStr+"Sell @ "+DoubleToStr(_op,Digits)+"; SL: "+DoubleToStr(_sl,Digits)+"; TP: "+DoubleToStr(_tp,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+".";
Alert(Symbol()," ",Period(), ": ",AlertStr);
if (SendEmail)
{
SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
}
Crepeat=Crepeat-1;
AlertTime=CurTime();
}
}
}
if (_exitsell==1)
{
if (Crepeat==Repeat)
{
AlertTime=0;
}
if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
{
if (_exitsell==1) {
AlertStr=AlertStr+" Close Sell @ "+DoubleToStr(_op,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+".";
Alert(Symbol()," ",Period(), ": ", AlertStr);
if (SendEmail)
{
SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
}
Crepeat=Crepeat-1;
AlertTime=CurTime();
}
}
}
if (_exitbuy==1)
{
if (Crepeat==Repeat)
{
AlertTime=0;
}
if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
{
if (_exitbuy==1) {
AlertStr=AlertStr+" Close Buy @ "+DoubleToStr(_op,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+".";
Alert(Symbol()," ",Period(), ": ",AlertStr);
if (SendEmail)
{
SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
}
Crepeat=Crepeat-1;
AlertTime=CurTime();
}
}
}
if (_exitbuy==0 && _exitsell==0 && _buy==0 && _sell==0)
{
Crepeat=Repeat;
AlertTime=0;
}
}
return;
}
void subPrintDetails()
{
string sComment = "";
string sp = "----------------------------------------\n";
string NL = "\n";
string sDirection = "";
sComment = "The Puncher By L.Bigger AKA Silence" + NL;
sComment = sComment + "StopLoss=" + DoubleToStr(StopLoss,0) + " | ";
sComment = sComment + "TakeProfit=" + DoubleToStr(TakeProfit,0) + " | ";
sComment = sComment + "TrailingStop=" + DoubleToStr(TrailingStop,0) + NL;
sComment = sComment + sp;
sComment = sComment + "Lots=" + DoubleToStr(Ilo,2) + " | ";
sComment = sComment + "LastTrade=" + DoubleToStr(TradeLast,0) + NL;
sComment = sComment + "sig_buy=" + DoubleToStr(sig_buy,Digits) + NL;
sComment = sComment + "sig_sell=" + DoubleToStr(sig_sell,Digits) + NL;
sComment = sComment + sp;
Comment(sComment);
}
int CntOrd(int Type, int Magic) {
int _CntOrd;
_CntOrd=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol()) {
if ( (OrderType()==Type && (OrderMagicNumber()==Magic) || Magic==0)) _CntOrd++;
}
}
return(_CntOrd);
}
string ErrorDescription(int error_code)
{
string error_string;
switch(error_code)
{
case 0:
case 1: error_string="no error"; break;
case 2: error_string="common error"; break;
case 3: error_string="invalid trade parameters"; break;
case 4: error_string="trade server is busy"; break;
case 5: error_string="old version of the client terminal"; break;
case 6: error_string="no connection with trade server"; break;
case 7: error_string="not enough rights"; break;
case 8: error_string="too frequent requests"; break;
case 9: error_string="malfunctional trade operation"; break;
case 64: error_string="account disabled"; break;
case 65: error_string="invalid account"; break;
case 128: error_string="trade timeout"; break;
case 129: error_string="invalid price"; break;
case 130: error_string="invalid stops"; break;
case 131: error_string="invalid trade volume"; break;
case 132: error_string="market is closed"; break;
case 133: error_string="trade is disabled"; break;
case 134: error_string="not enough money"; break;
case 135: error_string="price changed"; break;
case 136: error_string="off quotes"; break;
case 137: error_string="broker is busy"; break;
case 138: error_string="requote"; break;
case 139: error_string="order is locked"; break;
case 140: error_string="long positions only allowed"; break;
case 141: error_string="too many requests"; break;
case 145: error_string="modification denied because order too close to market"; break;
case 146: error_string="trade context is busy"; break;
case 4000: eПоказано первые 50% кода (символов: 21501)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.