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

 
hoz :

현재 가정된 주요 추세를 전송하는 역할을 하는 이 함수에 추세 매개변수를 전달할 때 이 매개변수를 기반으로 추가 계산이 수행되도록 만드는 방법.

저것들. trend == down 이면 루프의 함수는 지금과 같고, trend == up 이면 루프에서 Open[i]Close[i] 를 바꾸어 조건을 만족시켰습니다. 왜냐하면 이 경우 바의 종가는 이미 시가보다 낮으므로 그 차이는 마이너스 기호가 됩니다.


 bool trend;

if (( 2 *trend- 1 )*Δ=> const ) cnt++;
if (( 2 *trend- 1 )*Δ< const ) cnt= 0 ;
그런 다음 2 *trend- 1은 +1과 -1 값을 취합니다. trend=true이면 상승, trend=false - down, Δ는 각각 직접 또는 역 부호로 표시됩니다. 다음은 수학이 if의 와일드를 대체하는 예입니다.
 

gyfto, 키트의 테스트 스크립트가 작동합니까?

나는 이것을 할 것입니다 :

 //в шапке
#include <SharedMemoryMT4.mqh>
//в инит. Создание и открытие не обязательно. Эти функции для ускорения работы с памятью.
MemoryCreate( 1 , "" , NULL , - 1 , "ind" , 60 * GlobalVariableGet ( "ADXBars" ));
// Вариант более быстрый, чем выше:
MemoryCreateProjection( 1 , "" , NULL , - 1 , "ind" , 60 * GlobalVariableGet ( "ADXBars" ));

//в деинит
MemoryCloseName( 1 , "" , "ind" );
//в старт вместо 
for (; i<Σ; i++) MemoryWriteInt( 1 , "" , - 1 , "ind" , i * 4 , iBars(sn, 1 )); //ind[i]=iBars(sn, 1);
 #property show_inputs
#include <SharedMemoryMT4.mqh>
extern int x; //сколько секунд назад с данного момента прикрепления смотрим значения TOLHCV

int init()
  {
//   MemoryOpen(1, "", -1, "ind"); // Это не требуется.
   return ( 0 );
  }
int start()
  {
   //MemoryReadInt(1, "", -1, "ind", i) это ind[i], GlobalVariableGet("final") это последний элемент в массиве, а ф-ла выглядит так: n=ind[final]-ind[final-x]+1
   int n=MemoryReadInt( 1 , "" , - 1 , "ind" , GlobalVariableGet ( "final" ))-MemoryReadInt( 1 , "" , - 1 , "ind" , GlobalVariableGet ( "final" )-x)+ 1 ;
   Alert (TimeToStr( TimeCurrent (),TIME_SECONDS), ": Time=" , TimeToStr(Time[n], TIME_SECONDS), ", Open=" , Open[n], ", High=" , High[n], ", Low=" , Low[n], ", Close=" , Close[n], ", Volume=" , Volume[n]);
   return ( 0 );
  }

나머지는 맞습니다. 나는 데이터 전송 프로토콜에 대해서만 탐구하지 않았습니다.

메모리 생성, 열기 및 할당 은 선택 사항입니다. 이러한 기능은 메모리 처리 속도를 높이는 것입니다. 라이브러리 로 가장 간단한 작업을 위해서는 읽기 및 쓰기 기능만 필요합니다. 나머지는 도서관이 알아서 하겠습니다. 무엇에, 녹음 전에도 읽을 수 있습니다. 요청된 메모리가 할당되고 함수는 0을 반환합니다. 아직 아무것도 없는 것처럼.

 

쥰코, 아닌 것 같다. Comment() 는 출력하지 않고 로그에만 기록합니다.

 15 : 51 : 13 Check_SharedMemoryMT4.dll AUDUSD,M1 inputs: Area= 1 ; InitPrefix= "" ; UserGlobal= 25 ; UserTerminal= 50 ; UserWindow= 100 ; CheckWriteRead= false ; CheckWrite= false ; CheckRead= false ; CheckGeneral= false
CheckProjection= false ; CheckClose= false ; NamePrefix= "Check" ; NameMemory0= "CheckMemory0" ; NameMemory1= "CheckMemory1" ; NameMemory2= "CheckMemory2" ; NameMemory3= "CheckMemory3" ; NameMemory4= "Memory4"
Index=- 1 ; StartByte= 0 ; MemorySize= 64000 ; bValue= true ; cValue= 123 ; ucValue= 255 ; shValue= 32100 ; ushValue= 65535 ; nValue= 2147012345 ; fValue= 1234.56789012 ; dValue= 1234.56789012 ; sValue0= "Контроль = 1234.56789"
sValue1= "Контроль = 9876.54321" ; sValue2= "Привет мир!!!" ; sValue3= "Миру мир!" ; sValue4= "Неправильное  имя" ;

이 모든 것이 한 줄에 있습니다. 여기에 비정상적인 화면 너비가 없도록 여기로 옮겼습니다.

 
gyfto :

쥰코, 아닌 것 같다. Comment()는 출력하지 않고 로그에만 기록합니다.

이 모든 것이 한 줄에 있습니다. 여기에 비정상적인 화면 너비가 없도록 여기로 옮겼습니다.

동영상을 시청하세요. 똑같이하십시오. 작동하지 않으면 조사해 보겠습니다. 나를 위해 작동합니다.
 
나는 아마도 가장 어리석은 실수에 대한 경쟁에서 곧 승리할 것입니다. 내 GV 변수 ADXBars가 선언되지 않았으므로 "메소드 오류"로 작성되었습니다. 또한 int 경계에 정렬이 없었습니다. 그러나 정렬 여부에 관계없이 경고는 여전히 모든 0을 표시합니다. 나는 비디오를 볼 것이고, 나는 먼저 그것을 스스로 알아 내려고 노력할 것입니다. 그렇지 않으면 함께 해결하겠습니다.
 

TarasBY artmedia70hoz _

감사합니다 장교들!

 
CYBOPOB :

TarasBY artmedia70hoz _

감사합니다 장교들!

뭐야, 스스로 쐈어? :)))
 
artmedia70 :
뭐야, 스스로 쐈어? :)))


더블 8-[
 

안녕하세요! 이 스레드에서 저를 도와주세요.

https://www.mql5.com/ru/forum/144634

정말 감사합니다!

 

이 빌어먹을 오류가 발생했습니다. 사실 여기에는 전혀 논리가 없습니다. https://book.mql4.com/en/appendix/limits 의 요구 사항에 따라 보류 중인 주문을 열려면 시작 가격이 Bid(매도)보다 낮거나 Ask(구매)보다 높아야 합니다. 나는 요구 사항에 따라 모든 것을합니다.

 //+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
   int ticket = - 1 ;
   double OOP = High[ 1 ] + i_thresholdToUp * pt;
   pr ( "ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);

   if (ND(OOP) > Ask)
       ticket = OrderSend ( Symbol (), OP_BUYSTOP, 0.1 , ND(OOP), 3 , 0 , 0 , NULL , i_magic, 0 , CLR_NONE );
   else pr ( "Ордер послать не удалось " + GetLastError ());
   
   if (ticket > 0 )
   {
       lastBarTime = Time[ 0 ];               // На текущем баре все необходимые действия..
                                             // .. успешно выполнены
       return ( true );
   }
}

주기적으로 0130 오류가 있습니다. 130번째 에러는 잘못된 스톱의 에러인데, 수정시 발생할 수 있고, 주문을 열때가 아닐 수 있습니다.

화면에서 pr 함수를 사용하여 화면에 표시되는 상황과 인쇄물.

중지 오류

이 잼을 없애는 방법을 알려주세요. 나는 이미 이 오류에 지쳤습니다. 논리적으로, 그녀는 주제에서 전혀 벗어났습니다.