MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 191

 
Vitaly Muzichenko :

줄을 주석 처리하고 하나의 기능이 작동하도록 하십시오.


방법을 안다면 흥미로운
 
Rustam Bikbulatov :

방법을 안다면 흥미로운
당신은 아무것도 알 필요가 없습니다, 나는 그것을 코드에서 보여주었습니다 //
 
Rustam Bikbulatov :

다시 안녕. 유명한 프로그래머의 코드를 변경하는 방법을 알려주세요. 현재 이 올빼미는 초당 약 1개의 거래를 마감합니다. 포지티브, 네거티브 거래에 상관없이 일정 이익을 넘어서면 즉시 거래를 마감하도록 변경하고 싶습니다.

모든 메시지는 로그에 기록됩니다. 실수에 대해?

ClosePosBySelect 내부의 지연을 보다 합리적인 값으로 줄일 수 있습니다. 거기에서 각 주문을 닫기 위해 여러 번 시도하고 실패할 때마다 Sleep 이 중단됩니다.

그건 그렇고, 오류 복구가 더 최적으로 수행될 수 있습니다.

 
Rustam Bikbulatov :

방법을 안다면 흥미로운
이 두 개 를 이것으로 교체할 수 있습니다. 저에게 완벽하게 작동하지만 많은 것은 DC의 주문 실행 속도에 따라 다릅니다.
 
Maxim Kuznetsov :

모든 메시지는 로그에 기록됩니다. 실수에 대해?

ClosePosBySelect 내부의 지연을 보다 합리적인 값으로 줄일 수 있습니다. 거기에서 각 주문을 닫기 위해 여러 번 시도하고 실패할 때마다 Sleep이 중단됩니다.

그건 그렇고, 오류 복구가 더 최적으로 수행될 수 있습니다.

나는 Sleep을 완전히 제거 하려고 시도했지만 그들은 무엇에서 다릅니다.
 
Vitaly Muzichenko :
이 두 개 를 이것으로 교체할 수 있습니다. 저에게 완벽하게 작동하지만 많은 것은 DC의 주문 실행 속도에 따라 다릅니다.

본격적인 올빼미입니까 아니면 코드의 일부입니까?
 

주님의 전문가들이 도와드립니다! 셋째 날 나는 다음 문제로 머리를 갉아먹었다. 나는 Expert Advisor 표준(어디서나 사용되지는 않음)에서 다음 구문 분석을 위해 wininet.dll을 사용하여 인터넷에서 파일을 읽는 기능을 사용했습니다.


문자열 읽기HTML()

{

if(!IsDllsAllowed())

{

Alert("설정에서 DLL 사용을 허용해야 합니다.");

반품("");

}

int rv = InternetAttemptConnect(0);

if(rv != 0)

{

Alert("InternetAttemptConnect() 호출 오류");

반품("");

}

int hInternetSession = InternetOpenW("마이크로소프트 인터넷 익스플로러", 0, "", "", 0);

if(hInternetSession <= 0)

{

Alert("InternetOpenW() 호출 오류");

반품("");

}

int hURL = InternetOpenUrlW(hInternetSession, URL, "", 0, 0, 0);

if(hURL <= 0)

{

Alert("InternetOpenUrlW() 호출 오류");

InternetCloseHandle(hInternetSession);

반품("");

}

int cBuffer[256];

정수 dwBytesRead[1];

문자열 TXT = "";

동안(!Isstopped())

{

bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead);

if(dwBytesRead[0] == 0)

부서지다;

문자열 텍스트 = "";

stringtext0="";

for(int i = 0; i < 256; i++)

{

text0= CharToStr((char)(cBuffer[i] & 0x000000FF));

if (text0!="\r") 텍스트 = 텍스트 + 텍스트0;

그렇지 않으면 dwBytesRead[0]--;

if(StringLen(text) == dwBytesRead[0]) 중단;

text0= CharToStr((char)(cBuffer[i] >> (8 & 0x000000FF)));

if (text0!="\r") 텍스트 = 텍스트 + 텍스트0;

그렇지 않으면 dwBytesRead[0]--;

if(StringLen(text) == dwBytesRead[0]) 중단;

text0= CharToStr((char)(cBuffer[i] >> (16 & 0x000000FF)));

if (text0!="\r") 텍스트 = 텍스트 + 텍스트0;

그렇지 않으면 dwBytesRead[0]--;

if(StringLen(text) == dwBytesRead[0]) 중단;


text0= CharToStr((char)(cBuffer[i] >> (24 & 0x000000FF)));

if (text0!="\r") 텍스트 = 텍스트 + 텍스트0;

그렇지 않으면 dwBytesRead[0]--;

if(StringLen(text) == dwBytesRead[0]) 중단;

}

txt=txt+텍스트;

수면(1);

}

인터넷 닫기 핸들(hURL);

InternetCloseHandle(hInternetSession);

리턴(TXT);

}


모든 것이 OK입니다. 정보가 계속 업데이트되는 사이트를 한 번만 읽으면 다음에 이 기능에 액세스할 때(사이트가 더 자주 업데이트되지만 1분 이내로) 동일한 사이트가 표시되지 않습니다. 변경 사항(처음 읽었을 때). 어드바이저를 다시 시작해도 도움이 되지 않습니다. 터미널을 시작한 후 처음 액세스할 때 파일을 읽었기 때문에 파일을 제공했기 때문입니다. 원하는 사이트(각각 업데이트된 정보 포함)로 Internet Explorer를 수동으로 열고 기능이 이 업데이트된 정보를 읽기 시작한 다음 이 사이트 구성이 이미 고정된 경우 또는 MT4 터미널을 다시 시작할 때만 업데이트됩니다. 다시 시작한 후 처음으로 읽었습니다. 등등). 나는 그것이 InternetOpenW 또는 InternetOpenUrlW 매개변수와 관련이 있다고 생각합니다. 기본적으로 모든 곳에 0이 있지만 어디에서도 명확한 설명을 찾을 수 없으며 어떻게든 다른 사람들에게 효과가 있습니다. 터미널). 예, 터미널 설정 에서 "...에 대한 WebRequest 허용"이 원하는 사이트에 대해 수행했습니다.

 

안녕하세요.

RAM은 이미 흡연 중입니다. 어드바이저에서 문제가 발생했습니다. TP 또는 SL을 선택한 후 주문을 다시 엽니다!

인디케이터의 시그널이 나온 후 2번째 바에만 어드바이저가 붙은 상황이 생각나지 않는다

또는 TP 또는 SL이 작동하면 새 신호를 기다리지만 표시기 신호가 변경된 경우에만 대기합니다.


무효 OnTick()

{

uptr = NormalizeDouble (iCustom(NULL, 0, "경사 방향선", 기간, 방법, 가격, 0, n), 4);

dntr = NormalizeDouble(iCustom(NULL, 0, "경사 방향선", 기간, 방법, 가격, 1, n), 4);

if(DN_Trend()==true)

{

if(CountSell() == 0 && 입찰가 < dntr && 열기[3] < dntr && 닫기[3] < dntr)

{

티켓 = OrderSend(Symbol(), OP_SELL, 랏, 입찰, 슬리피지, 0, 0, "슬로퍼", 매직, 0, 레드);

만약 (티켓 > 0)

{

SL = NormalizeDouble(Bid + StopLoss*Point, Digits);

TP = NormalizeDouble(Bid - TakeProfit*Point, Digits);

if (OrderSelect(티켓, SELECT_BY_TICKET))

if(!OrderModify(티켓, OrderOpenPrice(), SL, TP, 0))

Print("판매 오류");

}

}

 
d1w4m3 :

안녕하세요.

RAM은 이미 흡연 중입니다. 어드바이저에서 문제가 발생했습니다. TP 또는 SL을 선택한 후 주문을 다시 엽니다!

인디케이터의 시그널이 나온 후 2번째 바에만 어드바이저가 붙은 상황이 생각나지 않는다

또는 TP 또는 SL이 작동하는 경우 새 신호를 기다리지만 표시기 신호가 변경된 경우에만 대기합니다.

마지막 마감 위치 가 수신된 신호와 동일한 유형이고 이 위치가 정지 주문 중 하나로 마감된 경우 해당 위치를 열지 마십시오.
 
Artyom Trishkin :
마지막 마감 위치 가 수신된 신호와 동일한 유형이고 이 위치가 정지 주문 중 하나로 마감된 경우 해당 위치를 열지 마십시오.


답변 감사합니다. 하지만 저는 몇 주 동안 코드로 구현하는 방법을 배우기 시작했습니다. 아니면 어디서 읽을 수 있는지 알려주세요. 아니면 이고르 김에 따라합니까?

그러나 그는 시스템에 따라가 아닌 위치를 열 것입니다. 그가 처음 일을 시작할 때 당신의 상태는이 문제를 피하지 않습니다.