Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 788

 

bom dia!! amigos! camaradas! respeito a vocês profissionais!!!

Preciso de ajuda!!! Meus olhos estão inchados, minha cabeça dói, não posso prescrevê-la, então minha EA mudou o StopLoss para os pontos especificados de lucro ao preço atual!!!

Ou seja, quando o preço mudou para um determinado ponto, StopLoss mudou-se para lá!!!

meu exemplo não se encaixa.

#define  MagicNumber  123

////extern double TakeProfit   = 50; //Тейкпрофит ордера
extern double StopLoss     = 50; //Стоплосс ордера  
extern int    Delta        = 100;  //Расстояние от цены для установки ордера
extern int    Expiration   = 100;    //Время истечения ордера
extern double Lot          = 0.01;    //Объём позиции
extern int    TrailingLevel = 200;   //уровень
extern int    TrailingStep  = 200;


int            last_bar       = 0;
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start(){

for (int i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

           if (OrderType() == OP_BUY) { 
 if ((OrderStopLoss() < (Bid - TrailingLevel * Point - TrailingStep * Point)) || (OrderStopLoss() == 0)) { // 2
          bool res=OrderModify(OrderTicket(),OrderOpenPrice(),(Bid - TrailingLevel * Point),OrderTakeProfit(),0,Green);   
}
}
}
  
 datetime expiration = TimeCurrent()+3600*Expiration; /// время окончания  
   double BUYLIMITPrice=Ask-Delta*Point; /// это пункты BUYLIMIT

 if (last_bar == Bars) return(0) ;
  last_bar = Bars;
   if (OrdersTotal() == 0)
     {
int ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lot, BUYLIMITPrice,0, BUYLIMITPrice-StopLoss*Point,0 ,"",MagicNumber,expiration,clrNONE);/// это BUYLIMIT
}
 
//----
  return(0) ; 
 } 
  
  
//-- ------------------------------------------------------------------


 
Rita:

Boa tarde.

Por favor, informe. Estou abrindo uma posição:

Como posso definir o comentário de posição para exibir o valormágico após o número da palavra?

Isto é, neste caso: Número 20781

Você também pode fazer isso:

   int mag=111222333;
   string str="Сложение строки и числа ";
   str=str+mag;
   Alert(str);

Ao adicionar variáveis de diferentes tipos, o resultado é convertido para o tipo de variável com a maior prioridade. String tem uma prioridade maior do que int

 
TarasBY:
Você tem o tempo OrderCloseTime() para fechar a posição perdida. A partir dele você pode ler o tempo através do TimeCurrent() - OrderCloseTime(). Ou em barras usando iBarShift (NULL, 0, OrderCloseTime()).

Obrigado!
 
Olá, você pode me dizer se é possível chamar um indicador padrão (por exemplo, MA) de um EA para que ele possa ser exibido no gráfico? Não preciso de seu valor em um certo ponto, é compreensível, mas exatamente deve ser desenhado na tabela? Obrigado
 
alxm:
Olá, você pode me dizer se é possível chamar um indicador padrão (por exemplo, MA) de um EA para que ele possa ser exibido no gráfico? Não preciso de seu valor em um certo ponto, é compreensível, mas exatamente deve ser desenhado na tabela? Obrigado

Você pode, somente com API, e somente com parâmetros padrão.
Ou a biblioteca de Vadim Zhunko. O que está mais próximo de você? A essência é a mesma - você tem que implementar o parâmetro que passa da EA para o indicador.

Biblioteca.

 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 // 7. ФУНКЦИИ ДЛЯ УПРАВЛЕНИЯ ПРОГРАММАМИ MQL4.
 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 // 7.1. Функция удаляет эксперт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteExpert(int hwndChart); // Системный дескриптор окна графика, удаляемого эксперта.
 //===============================================================================================================================================
 // 7.2. ФУНКЦИЯ удаляет индикаторы по имени из списка загруженных индикаторов.
 void ServiceDeleteIndicatorsByName(int     hwndChart,         // Системный дескриптор окна, куда прикреплен индикатор.
                                    int     nWindow,           // Номер подокна для удаления индикаторов. Если -1, то удаляются индикаторы из всех подокон.
                                    string &asIndicatorName[], // Одномерный массив с именами удаляемых индикаторов.
                                    int     nNumberName);      // Количество имён индикаторов в массиве.
 //===============================================================================================================================================
 // 7.3. Функция удаляет скрипт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteScript(int hwndChart); // Системный дескриптор окна графика, удаляемого скрипта.
 //===============================================================================================================================================
 // 7.4. Функция управляет диалоговым окном завершения скрипта и возвращает системный дескриптор диалогового окна завершения скрипта, если окно есть,
 //      иначе - NULL. Функция работает только с русской и английской локализациями.
 int ServiceDialogScript(int bInstruction); // Команда для диалогового окна завершения скрипта: TRUE - завершить скрипт, FALSE - не завершать скрипт.
 //===============================================================================================================================================
 // 7.5. Функция получает имена индикаторов из списка загруженных индикаторов.
 //      В случае успеха функция возвращает количество индикаторов в указанных подокнах параметром "nWindow", иначе ноль.
 int ServiceGetNamesIndicators(int     hwndChart,         // Системный дескриптор окна, куда прикреплен индикатор.
                               int     nWindow,           // Номер подграфика. Если -1, то считываются имена индикаторов из всех подокон.
                               string &asIndicatorName[], // Одномерный строковый массив для приёма имён индикаторов.
                                                          // Массив должен быть инициализирован разными значениями в каждой ячейке!
                                                          // Это особенность инициализации строковых массивов в MQL4.
                               int     nNumberName);      // Размер массива "asIndicatorName[]" для приёма имён индикаторов.
 //===============================================================================================================================================
 // 7.6. Функция возвращает TRUE, если окно свойств эксперта открыто, иначе - FALSE.
 bool ServiceIsPropertiesExpert(string sNameExpert); // Имя эксперта, для которого контроллируется открытие окна.
 //===============================================================================================================================================
 // 7.7. Функция открывает окно списка индикаторов. Функция ожидает открытия окна в течении 2,5 секунд. Если окно не появилось в течении этого времени,
 //      функция возвращает FALSE.
 bool ServiceListIndicators(int hwndChart); // Системный дескриптор окна графика, на котором вызывается окно списка индикаторов.
 //===============================================================================================================================================
 // 7.8. Функция загружает на указанный график пользовательский индикатор по его имени.
 void ServiceLoadCustomIndicator(int    hwndChart,      // Системный дескриптор окна графика, куда загружается индикатор.
                                 string sNameIndicator, // Имя загружаемого индикатора.
                                 int    bOK);           // Подтверждение запуска индикатора, при наличии диалогового окна свойств индикатора.
                                                        // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.9. Функция загружает на указанный график эксперт по его имени.
 void ServiceLoadExpert(int    hwndChart,   // Системный дескриптор окна графика, куда загружается эксперт.
                        string sNameExpert, // Имя загружаемого эксперта.
                        int    bOK);        // Подтверждение запуска эксперта, при наличии диалогового окна свойств эксперта.
                                            // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.10. Функция загружает на указанный график скрипт по его имени.
 void ServiceLoadScript(int    hwndChart,   // Системный дескриптор окна графика, куда загружается скрипт.
                        string sNameScript, // Имя загружаемого скрипта.
                        int    bOK);        // Подтверждение запуска скрипта, при наличии диалогового окна свойств скрипта. Скрипт может не иметь окна свойств!
                                            // При использовании функции для загрузки скрипта из скрипта на текущем графике параметр не работает из-за
                                            // невозможности одновременной работы двух скриптов на одном графике.
                                            // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.11. Функция загружает на указанный график стандартный индикатор по его имени.
 void ServiceLoadStdIndicator(int    hwndChart,      // Системный дескриптор окна графика, куда загружается индикатор.
                              string sNameIndicator, // Имя загружаемого индикатора.
                              int    bOK);           // Подтверждение запуска индикатора, при наличии диалогового окна свойств индикатора.
                                                     // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 
logut:

bom dia!! amigos! camaradas! respeito a vocês profissionais!!!

Preciso de ajuda!!! Meus olhos estão inchados, minha cabeça dói, não posso prescrevê-la, então minha EA mudou o StopLoss para os pontos especificados de lucro ao preço atual!!!

Ou seja, quando o preço mudou para um determinado ponto, StopLoss mudou-se para lá!!!

meu exemplo não se encaixa.

O que não se deve gostar?

 
ALXIMIKS:

Pode, somente com API, e somente com parâmetros padrão.
Ou a biblioteca de Vadim Zhunko. O que está mais próximo de você. A idéia é a mesma - você tem que implementar a passagem de parâmetros da EA para o indicador.

Isto é, o uso dos meios padrão não funcionará. Obrigado!
 
alxm:
Ou seja, não funcionará por meios padrão. Obrigado!
Podemos usar objetos para construir
 

Boa gente!!!

Ajude-me a encontrar um bug. Estou aprendendo sobre os Arrays.

Eu criei uma matriz em um arquivo de inclusão.

Coloco uma referência ao arquivo incluído em meu Expert Advisor.

Não consigo entender por que.

Nos códigos de erro do link de localização do arquivo

http://clip2net.com/s/jkTd89

double mass[]={
1.38890,
1.40510,
1.40980,
1.41340,
2.07850};
#include <ВКЛ.ФАЙЛ.mqh>
int ot ;
int ht ;
double X ;
double X1 ;
double X2 ;

int start()     
{
ot = OrdersTotal();     
double value = Bid;
int S = ArrayBsearch(mass,  value, WHOLE_ARRAY,  0, MODE_ASCEND);
if (ot==0)
if(Bid == mass[S])
OrderSend(Symbol(),OP_SELL,0.1,Bid ,3,Ask+1000*Point,Ask-300*Point,"jfh",123 );

return;
}

Obrigado.

 
solnce600:

Boa gente!!!

Ajude-me a encontrar um bug. Estou aprendendo sobre o Arrays.

Eu criei uma matriz em um arquivo de inclusão.

Coloco uma referência ao arquivo incluído em meu Expert Advisor.

Não consigo entender por que.

Nos códigos de erro do link de localização do arquivo

http://clip2net.com/s/jkTd89

Obrigado.

Na primeira linha havia uma mensagem de que o compilador não conseguia encontrar o arquivo para incluir