[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 448

 
artmedia70:

Exceto que não necessariamente funciona. Precisamos verificar as paradas e tamanhos para ver se eles são permitidos pelo cronômetro de sua corretora

ERR_TRADE_NOT_ALLOWED 4109 O comércio não é permitido. Você deve habilitar a opção "Permitir que a EA negocie" nas propriedades da EA.

Muito obrigado!

Necessário para permitir que a EA possa negociar)

 

Bom dia para todos.

Peço desculpas se esta questão já foi levantada antes, mas tenho que passar por 540 páginas.

Este é o problema. Na MT4, as ordens com o mesmo preço se sobrepõem e apenas uma ordem é visível. Há alguma configuração na MT4 para que, por exemplo, duas ordens em um gráfico sejam exibidas lado a lado sem se sobreporem uma à outra. Se não houver tais configurações, é possível criar uma tabela ou um gráfico com tal função?

 
pyrsikov:

Bom dia para todos.

Peço desculpas se esta questão já foi levantada antes, mas tenho que passar por 540 páginas.

Este é o problema. Na MT4, as ordens com o mesmo preço se sobrepõem e apenas uma ordem é visível. Há alguma configuração na MT4 para que, por exemplo, duas ordens em um gráfico sejam exibidas lado a lado sem se sobreporem uma à outra. Se não houver tais configurações, é possível criar uma tabela ou um gráfico com tal função?

Ctrl+t e uma tabela de todas as posições abertas aparece na parte inferior, se você mudar para a aba "Comércio".
 

Por favor, ajude-me - estou escrevendo um EA - usei o código como substrato;

if(drawBacker){
for(int x=0;x<7;x++)
para(int y=0;y<29;y++)
{
ObjectCreate("A_Fon "+x+y,OBJ_LABEL,0,0,0,0,0);
ObjectSet("A_Fon "+x+y, OBJPROP_CORNER, positionWindow); // positionWindow // Txt_Location
ObjectSet("A_Fon "+x+y,OBJPROP_XDISTANCE,x*20+5);
ObjectSet("A_Fon "+x+y,OBJPROP_YDISTANCE,y*20+9);
ObjectSetText("A_Fon "+x+y,CharToStr(110),26, "Wingdings",colorSubstrate);//Red);
}
se (drawWingdings==False)
{
for( int posp=1000;posp>0;posp--)
{
ObjectDelete("A_Fon "+posp);
ObjectDelete("A_Fon0"+pospp);
ObjectDelete("A_Fon00");
}
}
}

Como resultado, tenho uma bagunça, pois um grande número de objetos é desenhado no gráfico.

Por favor, diga-me o código normal para definir o fundo do texto.

 
7777877:

Boa tarde... Pergunta sobre as funções FileIsEnding e FileIsLineEnding. A fim de entender como FileIsEnding e FileIsLineEnding funcionam, escrevi o seguinte roteiro:

Depois que um número for escrito no arquivo, se você olhar na forma hexadecimal, haverá a seguinte entrada

00000000: 31 2E 33 35 38 34 0D 0A | | 1.3584...

Cada letra ou número leva 1 byte ou 8 bits, os dois últimos caracteres são chamados de line feed e carriage return, eles são anexados automaticamente para que o tamanho do arquivo seja 8 bytes e não 6.

Execute seu script ligeiramente modificado e observe como o cursor se move (deliberadamente fez a enumeração maior do que o tamanho do arquivo, para que você possa ver onde o erro ocorre.

int start()                                                              //функция start
  {                                                                      //начало start
   double Timestart=GetTickCount();                                      //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   string name="Копия Запись чисел в файл.csv";                          //имя создаваемого файла
   bool h;                                                               //переменная: значение функции FileIsEnding
   bool h_l;                                                             //переменная: значение функции FileIsLineEnding
   int error;                                                            //переменная: ошибка
   int handle=FileOpen(name,FILE_CSV|FILE_WRITE,';');                    //открываем заданный файл n записываем туда данные
   int запись=FileWrite(handle,DoubleToStr(1.3584,4));                   //записываем цены OHLC в файл csv (в преобразованном виде, т.е в виде текста)
   FileClose(handle);                                                    //закрываем файл
//---------------------------------------------------------------------------------------- 2 -
   handle=FileOpen(name,FILE_CSV|FILE_READ,';');                         //открываем заданный файл
   int size=FileSize(handle);                                            //вычисляем размер заданного файла
   Print("Размер файла ",name," составил ",size," байт");
   for(int i=0;i<=size;i++)
   {
   GetLastError();
   bool pos=FileSeek(handle,i,SEEK_SET);                                 //смещаем от начала вправо указатель файла
   int pos1=FileTell(handle);
   double чтение=FileReadNumber(handle);                                 //считываем число из текущей позиции (уже измененной функцией FileSeek) файлового указателя
   h=FileIsEnding(handle);                                               //устанавливаем текущее значение переменной h
   h_l=FileIsLineEnding(handle);                                         //устанавливаем текущее значение переменной h_l
   error=GetLastError();                                                 //значение ошибки, производимой функцией FileIsEnding
   if(error!=0)Alert("Текущая ошибка ",error);                           //если код текущей ошибки не равен 0, то получаем номер текущей ошибки
//----------------------------------------------------------------------------------------- 3 -
   Print(" Функция FileSeek вернула: ",pos,
         " Указатель находится в позиции - ",pos1,
           " Функция FileReadNumber(handle) вернула: ",чтение);//печать сообщения 
   }
   FileClose(handle);                                                    //закрываем файл
//----------------------------------------------------------------------------------------- 4 -
   return(0);                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 5 -
 

Ao depurar o indicador, você precisa imprimir uma matriz de valores de preço e tempo a partir de determinadas barras no shifft.

      price1 = iMA(Symbol(),i_maTF,i_maPeriod,i_maShiftByPrice,i_maMethod,i_maPrice,i_shiftBarsBack1+i);       // Цена в точке А
      price2 = iMA(Symbol(),i_maTF,i_maPeriod,i_maShiftByPrice,i_maMethod,i_maPrice,i_shiftBarsBack2+i);       // Цена в точке В
      time1 = iTime(Symbol(),Period(),i_shiftBarsBack1 + i - 1);                                               // Время в точке А
      time2 = iTime(Symbol(),Period(),i_shiftBarsBack2 + i - 1);                                               // Время в точке В

Eu entendo tudo isso dentro do operador, é claro:

for(i = limit - 1;i > 0;i--)

Então, transfiro os valores de preço e tempo para as arrays a fim de trabalhar com elas:

      varsPrice1[i] = price1;                                                                        // Массив цен в точке А
      varsPrice2[i] = price2;                                                                        // Массив цен в точке В
      varsTime1[i] = time1;                                                                          // Массив времени в точке А
      varsTime2[i] = time2;                                                                          // Массив времени в точке В

Eu tento imprimir o que já tenho imediatamente depois:

      Print("i = ", i," time1 = ", time1, " price1 = ", price1);
      Print("i = ", i," time2 = ", time2, " price2 = ", price2);
      Print("i = ", i," varsTime1[i] = ", varsTime1[i], " varsPrice1[i] = ", varsPrice1[i]);
      Print("i = ", i," varsTime2[i] = ", varsTime2[i], " varsPrice2[i] = ", varsPrice2[i]);

Isto é o que está impresso no Registro de especialista:

2012.10.20 14:47:13     2010.08.10 02:58  AngleByTg GBPUSD,M5: i = 41 varsTime1[i] = 1281381900 varsPrice1[i] = 0
2012.10.20 14:47:13     2010.08.10 02:58  AngleByTg GBPUSD,M5: i = 41 time2 = 1281382200 price2 = 0
2012.10.20 14:47:13     2010.08.10 02:58  AngleByTg GBPUSD,M5: i = 41 time1 = 1281381900 price1 = 0
2012.10.20 14:47:13     2010.08.10 02:58  AngleByTg GBPUSD,M5: i = 42 varsAngle[i] = 0
2012.10.20 14:47:13     2010.08.10 02:58  AngleByTg GBPUSD,M5: i = 42 varsTime2[i] = 1281381900 varsPrice2[i] = 0
2012.10.20 14:47:12     2010.08.10 02:56  AngleByTg GBPUSD,M5: i = 45 varsTime2[i] = 1281381000 varsPrice2[i] = 0
2012.10.20 14:47:12     2010.08.10 02:56  AngleByTg GBPUSD,M5: i = 45 varsTime1[i] = 1281380700 varsPrice1[i] = 0
2012.10.20 14:47:12     2010.08.10 02:56  AngleByTg GBPUSD,M5: i = 45 time2 = 1281381000 price2 = 0
2012.10.20 14:47:12     2010.08.10 02:56  AngleByTg GBPUSD,M5: i = 45 time1 = 1281380700 price1 = 0
2012.10.20 14:47:12     2010.08.10 02:56  AngleByTg GBPUSD,M5: i = 46 varsAngle[i] = 0
2012.10.20 14:47:12     2010.08.10 02:56  AngleByTg GBPUSD,M5: i = 46 varsTime2[i] = 1281380700 varsPrice2[i] = 0
2012.10.20 14:47:12     2010.08.10 02:56  AngleByTg GBPUSD,M5: i = 46 varsTime1[i] = 1281380400 varsPrice1[i] = 0
2012.10.20 14:47:12     2010.08.10 02:56  AngleByTg GBPUSD,M5: i = 46 time2 = 1281380700 price2 = 0
2012.10.20 14:47:11     2010.08.10 02:54  AngleByTg GBPUSD,M5: i = 91 time1 = 1281366600 price1 = 0
2012.10.20 14:47:11     2010.08.10 02:54  AngleByTg GBPUSD,M5: i = 92 varsAngle[i] = 0
2012.10.20 14:47:11     2010.08.10 02:54  AngleByTg GBPUSD,M5: i = 92 varsTime2[i] = 1281366600 varsPrice2[i] = 0
2012.10.20 14:47:11     2010.08.10 02:54  AngleByTg GBPUSD,M5: i = 92 varsTime1[i] = 1281366300 varsPrice1[i] = 0
2012.10.20 14:47:11     2010.08.10 02:54  AngleByTg GBPUSD,M5: i = 92 time2 = 1281366600 price2 = 0
2012.10.20 14:47:11     2010.08.10 02:54  AngleByTg GBPUSD,M5: i = 92 time1 = 1281366300 price1 = 0
2012.10.20 14:47:11     2010.08.10 02:54  AngleByTg GBPUSD,M5: i = 93 varsAngle[i] = 0
2012.10.20 14:47:11     2010.08.10 02:54  AngleByTg GBPUSD,M5: i = 93 varsTime2[i] = 1281366300 varsPrice2[i] = 0
2012.10.20 14:47:10     2010.08.10 02:52  AngleByTg GBPUSD,M5: i = 45 varsAngle[i] = 0
2012.10.20 14:47:10     2010.08.10 02:52  AngleByTg GBPUSD,M5: i = 45 varsTime2[i] = 1281380700 varsPrice2[i] = 0
2012.10.20 14:47:10     2010.08.10 02:52  AngleByTg GBPUSD,M5: i = 45 varsTime1[i] = 1281380400 varsPrice1[i] = 0
2012.10.20 14:47:10     2010.08.10 02:52  AngleByTg GBPUSD,M5: i = 45 time2 = 1281380700 price2 = 0
2012.10.20 14:47:10     2010.08.10 02:52  AngleByTg GBPUSD,M5: i = 45 time1 = 1281380400 price1 = 0
2012.10.20 14:47:10     2010.08.10 02:52  AngleByTg GBPUSD,M5: i = 46 varsAngle[i] = 0
2012.10.20 14:47:10     2010.08.10 02:52  AngleByTg GBPUSD,M5: i = 46 varsTime2[i] = 1281380400 varsPrice2[i] = 0
2012.10.20 14:47:10     2010.08.10 02:52  AngleByTg GBPUSD,M5: i = 46 varsTime1[i] = 1281380100 varsPrice1[i] = 0
2012.10.20 14:47:09     2010.08.10 02:50  AngleByTg GBPUSD,M5: i = 49 varsTime1[i] = 1281379200 varsPrice1[i] = 0

Aqui podemos ver claramente que os valores dos preços tanto da varsTime1[i] como davarsTime2[i] e apenas os preços do tempo1 e dotempo2 são sempre 0. O que há de errado com isso?

 
Vinin:

Você deve nos dar o código completo. Você não quer adivinhar o que é claro para você.

Entendo que não quero pensar sobre isso, mas você pode ao menos me dar uma dica se o problema estiver claro para você?
 
Olá usuários do fórum!!!!
Rapazes, tenho uma pergunta - quem sabe em que arquivo são armazenados os scripts atribuídos às "hotkeys"? Quero salvar este arquivo com as "Hotkeys" já designadas, que toda vez que após a reinstalação do terminal, se de repente houver tal necessidade, não atribuir essas chaves novamente ... mas apenas arquivo copiado e todas ...
Agradecemos antecipadamente a todos vocês.
 
hoz:

Ao depurar o indicador, você precisa imprimir uma matriz de valores de preço e tempo a partir de determinadas barras no shifft.

Eu entendo tudo isso dentro do operador, é claro:

Então, transfiro os valores de preço e tempo para as arrays a fim de trabalhar com elas:

Eu tento imprimir o que já tenho imediatamente depois:

Isto é o que está impresso no Registro de especialista:

Aqui podemos ver claramente que os valores dos preços tanto da varsTime1[i] como davarsTime2[i] e apenas os preços do tempo1 e dotempo2 são sempre 0. O que está errado?


i_maTF == Período()??????,

i_maPeriodo leva um valor razoável????

Talvez haja algo errado com o i_maShiftByPrice???

É difícil ser mais preciso.

 
sss2019:

Entendo que não quero especular, mas você pode ao menos me dar uma dica se o problema estiver claro para você?

Dê-me todo o código