[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 450

 
Pacman :

질문을 중복해서 죄송합니다. 하지만 알아낼 때까지 다음 예제를 실행할 수 없습니다.

알아낼 수 있도록 도와주세요.

주문을 여는 간단한 스크립트를 작성했습니다(MQL4 튜토리얼에서).

이 예에서는 4자의 도구에 대한 코드가 제공됩니다.

나는 점 뒤에 5자리 숫자가 있는 회사의 계정을 가지고 있습니다.

5자 코드를 올바르게 다시 작성하는 방법을 작성하고 스크립트를 실행할 때 오류 4109(거래 불가)가 발생하는 이유는 무엇입니까?

 int start()                                   // Спец. функция start()
  {                                           // Открытие BUY
   OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Bid- 15 0 * Point ,Bid+ 15 0 * Point );
   Alert ( GetLastError ());
   return ;                                   // Выход из start()
  }

반드시 작동한다는 의미는 아닙니다. DC의 스톱 레벨에 따라 스톱의 크기와 허용 여부를 확인해야 합니다.

ERR_TRADE_NOT_ALLOWED 4109 거래는 허용되지 않습니다. Expert Advisor의 속성에서 "Allow Expert Advisor의 거래 허용" 옵션을 활성화해야 합니다.
 
artmedia70 :

반드시 작동한다는 의미는 아닙니다. DC의 스톱 레벨에 따라 스톱의 크기와 허용 여부를 확인해야 합니다.

ERR_TRADE_NOT_ALLOWED 4109 거래는 허용되지 않습니다. Expert Advisor의 속성에서 "Allow Expert Advisor의 거래 허용" 옵션을 활성화해야 합니다.

정말 감사합니다!

어드바이저가 거래할 수 있도록 하는 것이 필요했습니다)

 

모두에게 좋은 하루.

죄송합니다. 질문이 더 일찍 제기되었지만 540페이지를 넘기는 경우입니다.

그런 문제. MT4에서는 동일한 가격의 주문이 중복되어 하나의 주문만 볼 수 있습니다. 예를 들어 차트의 두 주문이 서로 겹치지 않고 나란히 표시되도록 MT4에 설정이 있습니까? 그런 설정이 없으면 그런 기능 으로 테이블이나 그래프를 만들 수 있나요?

 
pyrsikov :

모두에게 좋은 하루.

죄송합니다. 질문이 더 일찍 제기되었지만 540페이지를 넘기는 경우입니다.

그런 문제. MT4에서는 동일한 가격의 주문이 중복되어 하나의 주문만 볼 수 있습니다. 예를 들어 차트의 두 주문이 서로 겹치지 않고 나란히 표시되도록 MT4에 설정이 있습니까? 그런 설정이 없으면 그런 기능으로 테이블이나 그래프를 만들 수 있나요?

Ctrl+t를 누르고 "거래" 탭으로 전환하면 하단에 열려 있는 모든 포지션의 표가 나타납니다.
 

도와주세요 - 저는 고문을 쓰고 있습니다 - 코드를 기질로 사용했습니다.

if (언더레이 그리기){
for(int x=0;x<7;x++)
for(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, 창 위치); // 창 위치 // 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",WingColor);//빨간색);
}
if(언더레이 그리기==False)
{
for(int posp=1000;posp>0;posp--)
{
ObjectDelete("A_Fon"+posp);
ObjectDelete("A_Fon0"+posp);
ObjectDelete("A_Fon00");
}
}
}

결과적으로 차트에 엄청난 수의 개체가 그려지기 때문에 쓰레기가되었습니다.

텍스트 아래에 배경을 설정하는 일반 코드를 알려주세요.

 
7777877 :

좋은 하루... FileIsEnding 및 FileIsLineEnding 함수에 대한 질문입니다. FileIsEnding 및 FileIsLineEnding 함수가 작동하는 방식을 이해하기 위해 다음 스크립트를 작성했습니다.

파일에 숫자를 쓴 후 16진수로 보면 다음과 같이 쓰여집니다.

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

각 문자 또는 숫자는 1바이트 또는 8비트를 차지하며 마지막 두 문자는 줄 바꿈 및 캐리지 리턴 이라고 하며 자동으로 채워지므로 파일 크기는 6이 아닌 8바이트입니다.

약간 수정된 스크립트를 실행하고 커서가 어떻게 움직이는지 확인합니다(특히 오류가 발생한 위치를 볼 수 있도록 파일 크기보다 크게 반복했습니다.

 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 -
 

표시기를 디버깅 할 때 마우스 이동을 사용하여 특정 막대에서 얻은 가격 및 시간 값의 배열을 인쇄 를 통해 출력해야 합니다.

      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 );                                               // Время в точке В

이 모든 것이 ess-그러나 연산자 내부에서 :

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

다음으로 가격 및 시간 값을 배열에 입력하여 추가 작업을 수행할 수 있습니다.

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

그 직후에 이미 있는 것을 인쇄하려고 합니다.

       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]);

전문가 저널에 실린 내용은 다음과 같습니다.

 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

여기에서 varsTime1[i]varsTime2[i] 배열 의 가격 값과 단순히 time1time2 틱 에서 수신된 가격이 항상 0 임을 분명히 알 수 있습니다. 그렇지 않은 것은 무엇입니까?

 
Vinin :

모든 코드를 제공할 수 있습니까? 그리고 나서 당신에게 분명한 것이 무엇인지 생각하고 싶지 않습니다.

나는 그것을 생각하고 싶지 않다는 것을 이해하지만 문제가 명확하다면 최소한 힌트를 줄 수 있습니까?
 
포럼의 여러분 안녕하세요!
여러분, 질문이 있습니다. 스크립트에 할당된 "단축키"가 어떤 파일에 저장되어 있는지 아는 사람 ??? "단축키"가 이미 할당된 상태로 이 파일을 저장하고 싶습니다. 터미널을 다시 설치한 후 갑자기 이러한 필요가 생겼을 때 이 키를 새로운 방식으로 할당하지 마십시오... 그러나 파일만 전송되고 그게 다야 ...
미리 감사드립니다.
 
hoz :

표시기를 디버깅할 때 마우스 이동을 사용하여 특정 막대에서 얻은 가격 및 시간 값의 배열을 인쇄 를 통해 출력해야 합니다.

이 모든 것이 ess-그러나 연산자 내부에서 :

다음으로 가격 및 시간 값을 배열에 입력하여 추가 작업을 수행할 수 있습니다.

그 직후에 이미 있는 것을 인쇄하려고 합니다.

다음은 전문가 저널에 실린 내용입니다.

여기에서 varsTime1[i]varsTime2[i] 배열 의 가격 값과 단순히 time1time2 틱 에서 수신된 가격이 항상 0 임을 분명히 알 수 있습니다. 그렇지 않은 것은 무엇입니까?


i_maTF == 마침표() ??????,

i_maPeriod는 합리적인 값을 취합니다???

글쎄, 아마도 i_maShiftByPrice에 문제가 있습니까???

정확히 말씀드리기 어렵습니다.

사유: