포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 841

 
답변 감사합니다. 하지만 어떤 mql4 함수가 이것을 구현할 수 있습니까?
 
MiroshA :
답변 감사합니다. 하지만 어떤 mql4 함수가 이것을 구현할 수 있습니까?
다른. 스스로 개발할 알고리즘에 따라 다릅니다.
 

여보세요. 내 EA는 많은 통화 쌍 창에 연결되어 작동하며 철회 가능성이 더 높은 곳에서 구매합니다. 나는 실행 중인 Expert Advisor 사본 간에 정보를 교환하기 위해 전역 변수 를 사용합니다. 데이터는 1초마다 업데이트됩니다. 전문가의 현대화와 함께 점점 더 많은 데이터 교환이 필요합니다. 가장 중요한 것은 gv-variables는 이중 유형만 가질 수 있으며 이제 통화 쌍의 이름을 전송해야 하며 거기에 문자열을 첨부할 수 없습니다. 이 모든 정보를 파일에 넣을까 생각했지만 하드 드라이브에 너무 자주 액세스할 수 있기 때문에 하지 않았습니다. RAM을 통한 해결 방법이 있습니까?

지금까지 내가 생각해낸 유일한 옵션은 각 통화에 특정 기본 번호를 부여하고 동일한 전역 변수를 사용하는 것입니다. 예를 들어 01023334455 와 같이 01 - usd , 02 eur , 3, 4, 5 - 교환용 데이터입니다. 어쩌면 더 정교한 방법이있을 수 있습니다. 당신은 무엇을 제안합니까?

 
pycha :

여보세요. 내 EA는 많은 통화 쌍 창에 연결되어 작동하고 철회 가능성이 더 높은 곳에서 구매합니다. 나는 실행 중인 Expert Advisor 사본 간에 정보를 교환하기 위해 전역 변수를 사용합니다. 데이터는 1초마다 업데이트됩니다. 전문가의 현대화와 함께 점점 더 많은 데이터 교환이 필요합니다. 가장 중요한 것은 gv-variables는 이중 유형만 가질 수 있으며 이제 통화 쌍의 이름을 전송해야 하며 거기에 문자열을 첨부할 수 없습니다. 이 모든 정보를 파일에 넣을까 생각했지만 하드 드라이브에 너무 자주 액세스할 수 있기 때문에 하지 않았습니다. RAM을 통한 해결 방법이 있습니까?

지금까지 내가 생각해낸 유일한 옵션은 각 통화에 특정 기본 번호를 부여하고 동일한 전역 변수를 사용하는 것입니다. 예를 들어 01023334455 와 같이 01 - usd , 02 eur , 3, 4, 5 - 교환용 데이터입니다. 어쩌면 더 정교한 방법이있을 수 있습니다. 당신은 무엇을 제안합니까?

그리고 변수 이름에 기호를 삽입하시겠습니까? 따라서 이러한 GV 변수가 있으면 ... 값을 입력할 수 있습니다. 따라서 1개의 변수가 2개의 할당을 수행하는 것으로 나타났습니다.

 

프로그램이 좀 더 다양해졌으면 하는 바람입니다. 이런 식으로 01 -usd, 02 eur를 파일에 넣을 수 있습니다. usdaud 창이 열리면 aud가 목록에 없음을 찾아 번호 03을 할당하여 이 정보를 파일에 저장합니다. 이런 식으로 시도하지 않은 새로운 통화로 프로그램을 열 때마다 프로그램을 다시 컴파일하는 작업을 박탈합니다.

 
AlexeyVik :

그리고 변수 이름에 기호를 삽입하시겠습니까? 따라서 이러한 GV 변수가 있으면 ... 값을 입력할 수 있습니다. 따라서 1개의 변수가 2개의 할당을 수행하는 것으로 나타났습니다.


이 옵션이 작동하지 않는 이유를 설명하겠습니다. 일정 시간 동안 한 번 프로그램은 불필요한 쓰레기를 제거하기 위해 모든 변수를 삭제합니다. GV1 GV2 등이 소진될 때까지 계속됩니다. 따라서 프로그램의 다른 복사본에 의해 생성된 변수가 있는 경우 해당 변수도 삭제되며 1초 후에 복원됩니다. 그리고 문자별로 변수 이름을 만드는 경우 모든 가능한 문자 변형을 거쳐 모든 것을 제거해야 합니다.



주제에서 벗어났습니다. 질문의 본질은 - GV 외에 다른 트릭이 있습니까? RAM을 통해 프로그램의 한 복사본에서 다른 복사본으로 데이터를 전송할 수 있는 변수가 있습니까?

 
pycha :

프로그램이 좀 더 다양해졌으면 하는 바람입니다. 이런 식으로 01 -usd, 02 eur를 파일에 넣을 수 있습니다. usdaud 창이 열리면 aud가 목록에 없음을 발견하고 여기에 번호 03을 할당하여 이 정보를 파일에 저장합니다. 이런 식으로 시도하지 않은 새로운 통화로 프로그램을 열 때마다 프로그램을 다시 컴파일하는 작업을 박탈합니다.


할당하는 이유는 무엇입니까? 기호 목록이 있습니다. 그것은 정렬 독립적입니다. 목록에서 기호 번호를 찾아 사용할 수 있음이 밝혀졌습니다.
 
네 감사합니다 모두들
 
pycha :

이 옵션이 작동하지 않는 이유를 설명하겠습니다. 일정 시간 동안 한 번 프로그램은 불필요한 쓰레기를 제거하기 위해 모든 변수를 삭제합니다. GV1 GV2 등이 소진될 때까지 계속됩니다. 따라서 프로그램의 다른 복사본에 의해 생성된 변수가 있는 경우 해당 변수도 삭제되며 1초 후에 복원됩니다. 그리고 문자별로 변수 이름을 만드는 경우 모든 가능한 문자 변형을 거쳐 모든 것을 제거해야 합니다.



주제에서 벗어났습니다. 질문의 본질은 - GV 외에 다른 트릭이 있습니까? RAM을 통해 프로그램의 한 복사본에서 다른 복사본으로 데이터를 전송할 수 있는 변수가 있습니까?

그럼, 도서관에서 구조를 만들고 거기에서 채우고 읽으십시오.
 

좋은 저녁이에요! 아래 코드를 이해하도록 도와주세요. 매도는 왜 세 가지 개설 옵션이 있는 것과 같은 원리에 따라 작성되었습니다. 왜냐하면 주문이 현재 막대에서 열리고 위험에 의해 마감될 때 주문을 열지 않는 옵션과 혼동을 해야만 했기 때문입니다. -무료,

근데 시그널이 남아서 오프닝이 또 계속돼서 이렇게 글을 쓰게 되었습니다. 그리고 문제는 하나의 매수 및 매도 주문만 열렸고 그게 다야, 침묵, 나는 오류를 찾지 못했다는 것입니다. 미리 감사드립니다.

 //+------------------------------------------------------------------+
//| Open Order Buy                                                   |
//+------------------------------------------------------------------+
if (! OrdersTotal ()== true )
{
if (PLO0>S0 && PLO1<=S1 && PLO2<S2)
if (!OrdersHistoryTotal()== true )
{
ticket= OrderSend ( Symbol (),OP_BUY,Lot,Ask, 3 ,StopLossBuy, 0 , NULL , 0 , 0 , clrGreen );
RefreshRates();
{
if (ticket< 0 )
{
Print ( "OrderSend OP_BUY завершилась с ошибкой #" , GetLastError ());
}
else
Print ( "Функция OrderSend OP_BUY успешно выполнена" );
}
}
if (OrdersHistoryTotal()== true )
if ( OrderSelect (ticket,SELECT_BY_TICKET)> 0 && OrderCloseTime()> 0 && OrderType()==OP_BUY && OrderSymbol()== Symbol ()&& PLO0>S0 && PLO1<=S1 && PLO2<S2 && OrderCloseTime()< Time[ 0 ])
{
ticket= OrderSend ( Symbol (),OP_BUY,Lot,Ask, 3 ,StopLossBuy, 0 , NULL , 0 , 0 , clrGreen );
RefreshRates();
{
if (ticket< 0 )
{
Print ( "OrderSend OP_BUY завершилась с ошибкой #" , GetLastError ());
}
else
Print ( "Функция OrderSend OP_BUY успешно выполнена" );
}
}
if (OrdersHistoryTotal()== true )
if ( OrderSelect (ticket,SELECT_BY_TICKET)> 0 && OrderCloseTime()> 0 && !OrderType()==OP_BUY && OrderSymbol()== Symbol ()&& PLO0>S0 && PLO1<=S1 && PLO2<S2)
{
ticket= OrderSend ( Symbol (),OP_BUY,Lot,Ask, 3 ,StopLossBuy, 0 , NULL , 0 , 0 , clrGreen );
RefreshRates();
{
if (ticket< 0 )
{
Print ( "OrderSend OP_BUY завершилась с ошибкой #" , GetLastError ());
}
else
Print ( "Функция OrderSend OP_BUY успешно выполнена" );
}
}
}