Скрипты: VisualOpenOrderWithMM

 

VisualOpenOrderWithMM:

Cкрипт устанавливает Stop Loss в соответствии с заданной величиной риска.

Перетаскиваем и бросаем скрипт на графике там, где должен быть стоплос. Выскакивает окно, где можно поменять риск. Текущее значение - 0.05 что означает 5% максимальной потери (если стоплос будет достигнут). Вычисляется объем и позиция открывается.

Author: Christo Tsvetanov

 

Вы уверены, что все учли?

 

Что-то не открывает.

 
med1um:

Вы уверены, что все учли?

Вроде все - но принимаю любые предложения.

 
Vitalik_on:

Что-то не открывает.

Смотрите в логе - причина ошибки должна быть отпечатана.

 
Itso:
Vitalik_on:

Что-то не открывает.

Смотрите в логе - причина ошибки должна быть отпечатана.


Вот такое пишет

2009.07.09 01:05:37 Script stdlib EURUSD,M5: loaded successfully


потом вот такое

2009.07.09 01:05:37 Script stdlib EURUSD,M5: removed


потом вот такое

2009.07.09 01:05:37 Script VisualOpenOrderWithMM EURUSD,M5: removed

 
Vitalik_on:
Itso:
Vitalik_on:

Что-то не открывает.

Смотрите в логе - причина ошибки должна быть отпечатана.

Вот такое пишет

2009.07.09 01:05:37 Script stdlib EURUSD,M5: loaded successfully


потом вот такое

2009.07.09 01:05:37 Script stdlib EURUSD,M5: removed


потом вот такое

2009.07.09 01:05:37 Script VisualOpenOrderWithMM EURUSD,M5: removed

Смотрите вкладку "Эксперты" - там находятся "настоящие" логи, но мне кажется, что у вас слишком большой стоплос и просто банально не хватают деньги.

 

Приветствую.

Можете внести изменения чтобы Сл и Тп выставлялись на следующем тике? При исполнении с рынка брокер не дает открывать ордер с предустановленными параметрами, только модифицировать после.

Заранее спасибо, Алексей.

 
Здравствуйте, подскажите что нужно исправить в коде этого скрипта чтобы он работал на счетах NDD и ECN ?я так понимаю скрипт сразу открывает позицию и выставляет стоп и профит, а на NDD счетах, нужно чтобы скрипт с начало открывал позицию, а потом модифицировал стоп и профит.
 
привествую, нужен аналог чтобы была возможность установки фиксированного лота, помогите пожалуйста найти, спасибо
 
Valentyna Horbanova :
saudações, precisamos de um analógico para poder definir um lote fixo, por favor me ajude a encontrar, obrigado


Aqui está



//+------------------------------------------------------------------+
//|                                        VisualOpenOrderWithMM.mq4 |
//|                                                             Itso |
//|                                                      itso@dir.bg |
//+------------------------------------------------------------------+
#property copyright "Itso"
#property link      "itso@dir.bg"
#property show_inputs
#property strict
#include <stdlib.mqh>

extern double Lots = 0.10; //Lot size
extern double Reward = 0.5; //Reward Multiplier

double Lotz;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   if(Lots < MarketInfo(Symbol(), MODE_MINLOT))
   {
     if (MessageBox("The lot size entered " +DoubleToString(Lots,2)+ " is less than the minimal lot for this symbol." "\n"
                 "Use the minimal lot: " + DoubleToString(MarketInfo(Symbol(), MODE_MINLOT),2) +"?" "\n"

                  ,"Confirmation",MB_OKCANCEL|MB_ICONEXCLAMATION)!=IDOK) return(1);

     Lotz = MarketInfo(Symbol(), MODE_MINLOT);
   }
   else
   {
     Lotz = Lots;
   }
//----

   double StopLoss = WindowPriceOnDropped();
   double TickValue = MarketInfo(Symbol(), MODE_TICKVALUE);
   int ordDigits = MarketInfo(Symbol(),MODE_DIGITS);
   string accountCurrency = AccountInfoString(ACCOUNT_CURRENCY);


   double PointLoss;
   int cmd;
   double price;
   double TakeProfit;

   if(Ask>StopLoss)
   {
      //Open Long
      PointLoss = (Ask - StopLoss) / Point;
      cmd = OP_BUY;
      price = Ask;
      TakeProfit = NormalizeDouble((Ask-StopLoss)*Reward+(Ask),ordDigits);
   }
   else
   {
      //Open Short
      PointLoss = (StopLoss - Bid) / Point;
      cmd = OP_SELL;
      price = Bid;
      TakeProfit = NormalizeDouble((Bid)-(StopLoss-Bid)*Reward,ordDigits);
   }

   Print("PointLoss: ", DoubleToStr(PointLoss));
   Print("price: ", DoubleToStr(price));
   if(cmd == OP_BUY)
   {
      Print("OP_BUY");
   }
   else
   {
      Print("OP_SELL");
   }
 

   int ticket = OrderSend(Symbol(), cmd, Lotz, price, 3, StopLoss, TakeProfit);
   if (ticket<0)
   {
      Print("Error: ", ErrorDescription(GetLastError()));
   }

//----
   return(0);
  }
//+------------------------------------------------------------------+
Причина обращения: