← К каталогу
Исходный код · ID 529

s-r.original.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой торговый советник для платформы MetaTrader 4. Он определяет уровни поддержки и сопротивления на графике и на их основе открывает отложенные ордера BuyStop и SellStop.

Советник осуществляет управление позициями с помощью трейл-стопа и модифицирует отложенные ордера при изменении рыночных уровней. Расчёт объёма сделки учитывает свободный баланс счёта и параметры риска, заданные пользователем.

Встроенная очистка устаревших графических объектов поддерживает актуальность отображения на графике. Советник работает в рамках стандартного обработчика событий MetaTrader 4.

Настройки программы

НастройкаОписание
MaximumRisk Максимальный коэффициент риска, определяющий долю свободного баланса, используемую для расчёта объёма сделки.
DecreaseFactor Коэффициент уменьшения лота при наличии убыточных сделок в истории.
Magic Магический номер для идентификации ордеров, управляемых советником.
comment Текстовый комментарий, добавляемый к ордерам советника.
Получить полный код

Поиск по коду файла

extern double  MaximumRisk    =0.02;
extern double  DecreaseFactor =3;
extern int     Lot.Margin     =1000;

extern int     Max.Trendlines =55;

extern double  Magic          =321;
extern string  comment        ="m S-R";

int b,s,ticket,ChartPeriod;
double buy,sell,btsl,stsl,b.mod,s.mod,bsl.mod,ssl.mod,bsl,ssl;
double spread;spread=Ask-Bid;
int slip;slip=spread/Point;
double fifteen;

int init(){
      // код доступен только после оплаты
   }
int deinit(){return(0);}
int start(){
      // код доступен только после оплаты
   }

void PosCounter() {
   b=0;s=0;
   for(int cnt=0;cnt<=OrdersTotal();cnt++)   {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {
         if(OrderType()==OP_SELL)      s++;
         if(OrderType()==OP_SELLSTOP)  s++;
         if(OrderType()==OP_BUY)       b++;
         if(OrderType()==OP_BUYSTOP)   b++;}}}

void BuySell()  {

   for(int c=0;c<ObjectsTotal();c++)  {
      if(ObjectGetValueByShift(ObjectName(c),0)>Ask) {
         buy=ObjectGetValueByShift(ObjectName(c),0)+spread;}
      if(ObjectGetValueByShift(ObjectName(c),0)<Bid)  {
         sell=ObjectGetValueByShift(ObjectName(c),0)-spread;}}}

void TrailStop()  {

   for(int i=0;i<OrdersTotal();i++) {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && IsTradeAllowed()) {

         if(OrderType()==OP_BUY) {
            for(int p=0;p<ObjectsTotal();p++)   {
               if(ObjectGetValueByShift(ObjectName(p),0)<Bid &&
                  ObjectGetValueByShift(ObjectName(p),0)>OrderOpenPrice() &&
                  ObjectGetValueByShift(ObjectName(p),0)>OrderStopLoss()) {
                  btsl=ObjectGetValueByShift(ObjectName(p),0);}
               if(btsl>0 && btsl>OrderStopLoss())  {
                  OrderModify(OrderTicket(),OrderOpenPrice(),btsl,
                  OrderTakeProfit(),OrderExpiration(),Olive);}}}

         if(OrderType()==OP_SELL)   {
            for(int k=0;k<ObjectsTotal();k++)   {
               if(ObjectGetValueByShift(ObjectName(k),0)>Ask &&
                  ObjectGetValueByShift(ObjectName(k),0)<OrderOpenPrice() &&
                  ObjectGetValueByShift(ObjectName(k),0)<OrderStopLoss()) {
                  stsl=ObjectGetValueByShift(ObjectName(k),0);}
                  if(stsl>0 && stsl<OrderStopLoss())  {
                  OrderModify(OrderTicket(),OrderOpenPrice(),stsl,
                  OrderTakeProfit(),OrderExp

Показано первые 50% кода (символов: 6116)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
611,60₽ ≈ $7.47