오류, 버그, 질문 - 페이지 2068

 

https://habrahabr.ru/post/342180/ 에서 새로운 WebAssembly 기술에 대한 매우 흥미로운 개요

WebAssembly (WASM) — новый бинарный формат, позволяющий запускать код в браузере...

WebAssembly의 적용:

- 로딩 시간 단축
- 계산 속도를 높입니다.
- 기성품 C/C++ 코드 사용


MQL 코드를 컴파일할 수 있는 웹 서비스에 대한 중기 루머를 감안할 때,
WebAssembly를 기반으로 하는 브라우저에서 직접 맞춤형 어드바이저를 시작하는 프로젝트를 구현할 수 있는 근본적인 가능성에 대해 합리적인 질문이 제기됩니다.
Знакомство с WebAssembly
Знакомство с WebAssembly
  • 2012.11.17
  • habrahabr.ru
Эта статья основана на моём выступлении на ITSubbotnik, прошедшем в Рязани 14 октября 2017 года. На русском пока что довольно мало материала на эту тему, надеюсь что статья будет вам полезна. Disclaimer: Автор не является экспертом ни в WebAssembly, ни в JavaScript. Данная статья есть компиляция мыслей и идей, полученных из выступлений других...
 
Andrey Khatimlianskii :

로그를 배치하면 더 명확해질 것입니다. 그리고 전문가와 터미널.

터미널 탭

2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]

전문가 탭

        Line 8103 : 2      16 : 29 : 01.266     Forex V2 EURNZD,M1: open # 4448742 sell 0.02 EURNZD at 1.68131 ok
        Line 8104 : 0      16 : 29 : 01.266     Forex V2 EURNZD,M1: Order # 4448742 open

        Line 10145 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 1 закрытия/удаления ордера # 4448742 Ошибка: 3
        Line 10146 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10147 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 2 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10148 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10149 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 3 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10150 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10151 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 4 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10152 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10153 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 5 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10154 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10155 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 6 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10156 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10157 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 7 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10158 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10159 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 8 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10160 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10161 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 9 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10162 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10163 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 10 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10164 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10165 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 11 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10166 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10167 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 12 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10168 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10169 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 13 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10170 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10171 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 14 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10172 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10173 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 15 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10174 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10175 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 16 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10176 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10177 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 17 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10178 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10179 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 18 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10180 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10181 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 19 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10182 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10183 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 20 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10184 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10185 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 21 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10186 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10187 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 22 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10188 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10189 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 23 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10190 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10191 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 24 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10192 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10193 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 25 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10194 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10195 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 26 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10196 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10197 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 27 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10198 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10199 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 28 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10200 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10201 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 29 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10202 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10203 : 0    20 : 37 : 39.760     ExpertName EURNZD,H1: Неудачная попытка 30 закрытия/удаления ордера # 4448742 Ошибка: 4108
        Line 10204 : 3    20 : 37 : 39.760     ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        
        Line 10243 : 2    20 : 37 : 39.760     ExpertName EURNZD,H1: close # 4448742 sell 0.02 EURNZD at 1.68131 at price 1.68356

오류 3 이후에는 실제로 닫히지 않습니다. 이해했습니다.

Expert #1이 청산 중이고 두 번째 전문가도 같은 시간에 같은 포지션 청산을 시도했습니다.

작업의 논리를 수정했고 이제 물론 오류가 없습니다.


BUT: 루프 내에서 OrderClose()에 전달된 동일한 매개변수를 사용하여 오류 번호를 #3에서 #4108로 변경합니다.

오류 3이 먼저 발생한 다음 4108이 발생하는 이유는 무엇입니까? - 이것이 남은 질문이다.

{타이밍을 보면 이론적으로 차단된 주문을 닫으려는 시도가 있으며(동시에 오류 139 자체가 발행되지 않음), 닫은 후(따라서 주문 잠금 해제), 오류 3.}


왜 터미널은 주문이 차단되었다는 특정 오류를 제공하지 않고 대신 매우 일반적인 오류 3을 제공합니까?

 
Kirill Belousov :

BUT: 루프 내에서 OrderClose()에 전달된 동일한 매개변수를 사용하여 오류 번호를 #3에서 #4108로 변경합니다.

오류 3이 먼저 발생한 다음 4108이 발생하는 이유는 무엇입니까? - 남은 질문입니다.

이것은 1 OrderSelect가 있던 코드의 버전입니다. 그런 다음 4108이 정당화됩니다.

3 - 다른 어드바이저가 포지션을 청산하는 순간, 4108 - 이미 청산된 포지션 을 청산하려고 할 때 .

 
Andrey Khatimlianskii :

이것은 1 OrderSelect가 있던 코드의 버전입니다. 그런 다음 4108이 정당화됩니다.

3 - 다른 어드바이저가 포지션을 청산하는 순간, 4108 - 이미 청산된 포지션 을 청산하려고 할 때 .

권리.

그러나 이미 마감 명령을 받은 주문을 마감하려고 할 때 오류 139가 발생하지 않는 이유는 무엇입니까?

결국 우리는 139번째 오류의 상황을 가지고 있습니다. 안 그래?

 

잘못된 오류 텍스트

 void f( int &[] ) {}

class A
{
public :
   int Array[];
  
   void f2() const
  {
    f( this .Array); // 'Array' - constant variable cannot be passed as reference
  }
};
 
싸우면 안 될 것 같다.
 Print ( NULL ); // 'NULL' - expression of 'void' type is illegal
 
Kirill Belousov :

권리.

그러나 이미 마감 주문을 보낸 주문을 마감하려고 할 때 오류 139가 발생하지 않는 이유는 무엇입니까?

결국 우리는 139번째 오류의 상황을 가지고 있습니다. 안 그래?

모르겠어. 하지만 버그라고 하기는 어렵다.

 
Andrey Khatimlianskii :

모르겠어. 하지만 버그라고 하기는 어렵다.

2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]

터미널 로그를 보면 오류 메시지 3은 위치가 닫힌 발행되며 서버의 잠금이 감지되어야 하는 순간이 아닙니다.

오류 메시지 139는 거의 0.5초 전에 발행되었을 수 있습니다. 이 모든 시간 동안 어드바이저는 주문을 종료한 후 오류 3이 발생하도록 "중단"합니다.

그런데 오류 3 Invalid Parameters는 터미널 로그에 있으며 4108은 출력으로 인한 것이며 전문가 탭에만 있습니다. 4108은 클라이언트 측 처리인 것 같습니다.

나는 단지 그것을 코드에 넣기 위해 논리를 알고/이해하고 싶고, 과학적 찌르기의 방법으로 더듬지 않기를 원한다..)

이 상황이 아니라면 어떤 다른 상황에서 오류 139가 발생합니까?

 
Kirill Belousov :

이 상황이 아니라면 어떤 다른 상황에서 오류 139가 발생합니까?

보류 중인 주문/SL/TP 를 트리거하거나 스탑아웃(서버에서도)으로 포지션을 청산하는 순간.

4108에서는 묻지 않겠습니다.
그러나 반복합니다. 이해의 요점을 이해하지 못합니다. 두 명의 고문이 동시에 마감 명령을 내리면 그 중 한 명이 확실히 오류가 발생합니다(차이점은 무엇입니까?).
처리는 매우 간단합니다. OrderSelect를 수행하고 OrderCloseTime을 확인합니다.

 
Ilnur Khasanov :

뭐?
중재자로부터:
불행히도 기술적인 결함으로 인해 설명 텍스트가 제거되었습니다. 다시 작성하여 검토를 위해 제품을 제출하십시오.
불편에 대해 사과드립니다.

이것은 단지 불편함이 아니라 뇌를 여러 번 솟구쳐 오르는 것입니다(매회 10일의 기다림). 그리고 그것을 삭제하고 말하기: 오, 죄송합니다, 우리가 지웠고, 스레드처럼 스스로 복원한 다음 기다리십시오. 또 10일. - 그리고 당신이 이것을 하려고 할 때, 사이트는 여전히 충돌합니다 ..

이게 뭔 개소리야? 이것을 잃기 위해서는 어떤 종류의 실패가 일어나야 합니까? 복원할 역사가 없다고요? 설명 메시지가 며칠 동안 보관되었습니다.
이번에는 왜 진행자 메시지가 안 뜨나요?

데이터 지우기와 관련된 이 문제가 한 번 발생하지 않는다는 것을 확실히 알고 있습니다. 이 실패라고 주장하는 것은 사실 실패가 아닙니다(마감일 연기). 왜냐하면 이것은 저에게만 일어나는 것이 아니라 동시에 일어나지 않기 때문입니다(문제는 6개월 이상 존재했습니다)! - 의견을 부탁합니다.

그리고 고쳐주세요. 할 수 없다면 저를 고용하세요. 일주일 안에 2000유로에 하겠습니다.

어떻게 .. 대실패 스트레이트 ..

일반적으로 지워진 것이 복원됩니까? 사회자와의 통신이 절반을 잃었습니다. 포럼에서 사라진 메시지. 그리고 사회자는 비어있는 메시지도 삭제했습니다.
왜 체제가 없습니다 - 그러한 작업이 수행되고 있습니까? - 또는 오히려 순서는 다음과 같습니다. 먼저 모드를 켜고 작업을 수행한 다음 모드를 복원합니다.

올리자마자 사이트가 다운되더라구요. 나는 업데이트하기로 결정했습니다-사이트가 거짓말을하고 있습니다 ...

두 번째로 wtf. 위의 댓글은 4일 전에 작성된 것입니다. 이제 내가 이미 수정한 발언으로 다시 돌아왔습니다. 제품의 새 버전을 게시했습니다. 이제 그녀는 사라졌습니다. 새 버전은 어디로 갔습니까?
당신은 그렇게 일할 수 없습니다 - 글쎄, 그것은 심각하지 않습니다 ..
중재자에게 새 댓글에서 더 이상 잃지 않기 위해 사라진 설명을 복제했습니다.
제품은 어떻습니까? 이메일로 보내? 댓글에 첨부? 아니면 다시 시도하고 며칠을 기다리시겠습니까?