MQL kodunu derlemek için olası bir web hizmeti hakkında orta vadeli söylentiler göz önüne alındığında, Özel danışmanları doğrudan WebAssembly tabanlı bir tarayıcıdan başlatmak için bir projenin uygulanmasının temel olasılığı hakkında makul bir soru ortaya çıkıyor.
Эта статья основана на моём выступлении на ITSubbotnik, прошедшем в Рязани 14 октября 2017 года. На русском пока что довольно мало материала на эту тему, надеюсь что статья будет вам полезна. Disclaimer: Автор не является экспертом ни в WebAssembly, ни в JavaScript. Данная статья есть компиляция мыслей и идей, полученных из выступлений других...
Günlükleri düzenleyin, daha net hale gelecektir. Ve uzman ve terminal.
Terminal sekmesi
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]
Uzman sekmesi
Line 8103 : 216 : 29 : 01.266 Forex V2 EURNZD,M1: open # 4448742sell 0.02 EURNZD at 1.68131 ok
Line 8104 : 016 : 29 : 01.266 Forex V2 EURNZD,M1: Order # 4448742open
Line 10145 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 1 закрытия/удаления ордера # 4448742Ошибка: 3
Line 10146 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10147 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 2 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10148 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10149 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 3 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10150 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10151 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 4 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10152 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10153 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 5 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10154 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10155 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 6 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10156 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10157 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 7 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10158 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10159 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 8 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10160 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10161 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 9 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10162 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10163 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 10 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10164 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10165 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 11 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10166 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10167 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 12 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10168 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10169 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 13 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10170 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10171 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 14 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10172 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10173 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 15 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10174 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10175 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 16 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10176 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10177 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 17 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10178 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10179 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 18 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10180 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10181 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 19 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10182 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10183 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 20 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10184 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10185 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 21 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10186 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10187 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 22 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10188 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10189 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 23 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10190 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10191 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 24 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10192 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10193 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 25 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10194 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10195 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 26 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10196 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10197 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 27 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10198 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10199 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 28 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10200 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10201 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 29 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10202 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10203 : 020 : 37 : 39.760 ExpertName EURNZD,H1: Неудачная попытка 30 закрытия/удаления ордера # 4448742Ошибка: 4108
Line 10204 : 320 : 37 : 39.760 ExpertName EURNZD,H1: unknown ticket 4448742forOrderClose function
Line 10243 : 220 : 37 : 39.760 ExpertName EURNZD,H1: close # 4448742sell 0.02 EURNZD at 1.68131 at price 1.68356
Hata 3'ten sonra gerçekten kapanma yok. Bunu anladım.
1 numaralı uzman kapanıyor ve ikincisi de aynı pozisyonu aynı anda kapatmaya çalıştı.
Çalışma mantığı düzeltildi ve şimdi tabii ki hata yok.
AMA: Döngü içinde OrderClose()'a iletilen aynı parametrelerle hata numarasını #3'ten #4108'e değiştirmek.
Neden önce Hata 3, ardından 4108 verilir? - bu kalan soru
{Zamanlamalara bakarsanız, teorik olarak engellenen bir siparişi kapatma girişiminde bulunuruz (aynı zamanda, hata 139'un kendisi verilmez) ve kapattıktan sonra (ve buna göre siparişin kilidini açar), şunu alırız: hata 3.}
Terminal neden siparişin engellendiğine dair belirli bir hata vermiyor ve bunun yerine çok genel bir hata 3 veriyor?
void f( int &[] ) {}
class A
{
public :
int Array[];
void f2() const
{
f( this .Array); // 'Array' - constant variable cannot be passed as reference
}
};
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]
Terminal günlüğüne bakarsanız, sunucudaki kilidin algılanması gerektiği anda değil, konum kapatıldıktan sonrahata mesajı 3 verilir.
Hata mesajı 139, neredeyse 0,5 saniye önce verilmiş olabilir. Bunca zaman, danışman siparişi kapattıktan sonra hata 3'ü almak için "kilitleniyor".
Ve bu arada, hata 3 Geçersiz Parametreler terminal günlüğündedir ve 4108 yalnızca çıktısı nedeniyle ve yalnızca uzman sekmesindedir. 4108 istemci tarafı işleme gibi görünüyor.
Sadece kodun içine koymak için mantığı bilmek / anlamak istiyorum ve bilimsel dürtme yöntemiyle el yordamıyla değil ..)
Bu durumda değilse, başka hangi durumda 139 hatası alıyorsunuz ...?
4108'de sormayacağım. Ancak tekrar ediyorum, anlamadaki noktayı görmüyorum - 2 danışman aynı anda kapatma emri verirse, bunlardan birinin kesinlikle bir hatası olacaktır (fark nedir - ne?). İşleme çok basit - OrderSelect yapıyoruz ve OrderCloseTime'ı kontrol ediyoruz.
o ne lan? moderatörden: Maalesef teknik bir aksaklıktan dolayı açıklama metni kaldırılmıştır. Lütfen tekrar yazın ve ürünü incelemeye gönderin. Sebep olduğumuz herhangi bir rahatsızlık için özür dileriz.
Bu sadece bir rahatsızlık değil, beyni birkaç kez uçurmak (her seferinde 10 günlük bir bekleme süresidir) ve sonra silip şunu söylemektir: ah pardon, sildik, bir iplik gibi kendin geri yükle, sonra bekle 10 gün daha. - ve bunu yapmaya çalıştığınızda site hala çöküyor ..
Bu saçmalık nedir? Bunun kaybolması için ne tür bir başarısızlık olması gerekir? geri yüklenecek bir geçmiş yok mu? Açıklama mesajı birkaç gündür depodaydı. Bu sefer moderatörden gelen mesaj neden açılmadı?
Verileri silme ile ilgili bu sorunun bir kez yaşanmadığından eminim. Bu sözde başarısızlık, aslında, bir başarısızlık değil (Muhtemelen son teslim tarihlerini geciktiriyor), çünkü bu sadece benimle değil aynı zamanda değil (sorun altı aydan fazla bir süredir var)! - lütfen yorum yap.
Ve lütfen düzeltin. Yapamıyorsan, beni işe al. 2000 Euro'ya bir hafta içinde yapacağım.
Nasıl yani.. dosdoğru fiyasko..
Genel olarak, silinenler geri yüklenecek mi? Moderatörle yazışmaların yarısını kaybettim. Forumdan kaybolan mesajlar. Ve moderatörler boş kalan mesajları da sildi. Neden rejim yok, yapılıyor o çalışmalar? - veya daha doğrusu, sıra şudur - önce mod açılır - sonra çalışma yapılır, sonra mod geri yüklenir.
Ben yazdıktan sonra site kapandı. Güncellemeye karar verdim - site yalan söylüyor ...
wtf ikinci kez. Yukarıdaki yorum 4 gün önce yazılmış. şimdi yine düzelttiğim bir yorumla geri döndü. Ürünün yeni versiyonunu paylaştım. şimdi o gitti. yeni sürüm nereye gitti böyle çalışamazsın - peki, bu ciddi değil .. moderatöre yeni bir yorumda, daha fazla kaybetmemek için giden açıklamayı çoğalttım. ürün ne olacak? e-postaya gönder? yorumlara ekle? Yoksa tekrar deneyip günlerce beklemek mi?
https://habrahabr.ru/post/342180/ adresindeki yeni WebAssembly teknolojisine oldukça ilginç bir genel bakış
WebAssembly (WASM) — новый бинарный формат, позволяющий запускать код в браузере...
WebAssembly Uygulaması:
-Yükleme süresini azaltın
- Hesaplamaların hızını artırın
-Hazır C/C++ kodunu kullanın
MQL kodunu derlemek için olası bir web hizmeti hakkında orta vadeli söylentiler göz önüne alındığında,
Özel danışmanları doğrudan WebAssembly tabanlı bir tarayıcıdan başlatmak için bir projenin uygulanmasının temel olasılığı hakkında makul bir soru ortaya çıkıyor.
Günlükleri düzenleyin, daha net hale gelecektir. Ve uzman ve terminal.
Terminal sekmesi
Uzman sekmesi
Hata 3'ten sonra gerçekten kapanma yok. Bunu anladım.
1 numaralı uzman kapanıyor ve ikincisi de aynı pozisyonu aynı anda kapatmaya çalıştı.
Çalışma mantığı düzeltildi ve şimdi tabii ki hata yok.
AMA: Döngü içinde OrderClose()'a iletilen aynı parametrelerle hata numarasını #3'ten #4108'e değiştirmek.
Neden önce Hata 3, ardından 4108 verilir? - bu kalan soru
{Zamanlamalara bakarsanız, teorik olarak engellenen bir siparişi kapatma girişiminde bulunuruz (aynı zamanda, hata 139'un kendisi verilmez) ve kapattıktan sonra (ve buna göre siparişin kilidini açar), şunu alırız: hata 3.}
Terminal neden siparişin engellendiğine dair belirli bir hata vermiyor ve bunun yerine çok genel bir hata 3 veriyor?
AMA: Döngü içinde OrderClose()'a iletilen aynı parametrelerle hata numarasını #3'ten #4108'e değiştirmek.
Neden önce Hata 3, ardından 4108 verilir? - bu kalan soru
Bu, 1 OrderSelect'in olduğu kodun versiyonu, değil mi? O zaman 4108 haklı.
3 - başka bir danışmanın bir pozisyonu kapattığı anda, 4108 - zaten kapalı bir pozisyonu kapatmaya çalışırken .
Bu, 1 OrderSelect'in olduğu kodun versiyonu, değil mi? O zaman 4108 haklı.
3 - başka bir danışmanın bir pozisyonu kapattığı anda, 4108 - zaten kapalı bir pozisyonu kapatmaya çalışırken .
Doğru.
Ancak, zaten bir kapanış emri gönderilmiş bir emri kapatmaya çalışırken neden 139 hatası verilmiyor?
Sonuçta, 139. hata durumunu tercih ediyoruz. Değil mi?
Geçersiz hata metni
Doğru.
Ancak, zaten bir kapanış emri gönderilmiş bir emri kapatmaya çalışırken neden 139 hatası verilmiyor?
Sonuçta, 139. hata durumunu tercih ediyoruz. Değil mi?
bilmiyorum. Ama buna bug demek zor.
bilmiyorum. Ama buna bug demek zor.
Terminal günlüğüne bakarsanız, sunucudaki kilidin algılanması gerektiği anda değil, konum kapatıldıktan sonra hata mesajı 3 verilir.
Hata mesajı 139, neredeyse 0,5 saniye önce verilmiş olabilir. Bunca zaman, danışman siparişi kapattıktan sonra hata 3'ü almak için "kilitleniyor".
Ve bu arada, hata 3 Geçersiz Parametreler terminal günlüğündedir ve 4108 yalnızca çıktısı nedeniyle ve yalnızca uzman sekmesindedir. 4108 istemci tarafı işleme gibi görünüyor.
Sadece kodun içine koymak için mantığı bilmek / anlamak istiyorum ve bilimsel dürtme yöntemiyle el yordamıyla değil ..)
Bu durumda değilse, başka hangi durumda 139 hatası alıyorsunuz ...?
Bu durumda değilse, başka hangi durumda 139 hatası alıyorsunuz ...?
Bekleyen bir emri/SL/TP'yi tetikleme veya stop-out ile bir pozisyonu kapatma anında (ayrıca sunucuda).
4108'de sormayacağım.
Ancak tekrar ediyorum, anlamadaki noktayı görmüyorum - 2 danışman aynı anda kapatma emri verirse, bunlardan birinin kesinlikle bir hatası olacaktır (fark nedir - ne?).
İşleme çok basit - OrderSelect yapıyoruz ve OrderCloseTime'ı kontrol ediyoruz.
o ne lan?
moderatörden:
Maalesef teknik bir aksaklıktan dolayı açıklama metni kaldırılmıştır. Lütfen tekrar yazın ve ürünü incelemeye gönderin.
Sebep olduğumuz herhangi bir rahatsızlık için özür dileriz.
Bu sadece bir rahatsızlık değil, beyni birkaç kez uçurmak (her seferinde 10 günlük bir bekleme süresidir) ve sonra silip şunu söylemektir: ah pardon, sildik, bir iplik gibi kendin geri yükle, sonra bekle 10 gün daha. - ve bunu yapmaya çalıştığınızda site hala çöküyor ..
Bu saçmalık nedir? Bunun kaybolması için ne tür bir başarısızlık olması gerekir? geri yüklenecek bir geçmiş yok mu? Açıklama mesajı birkaç gündür depodaydı.
Bu sefer moderatörden gelen mesaj neden açılmadı?
Verileri silme ile ilgili bu sorunun bir kez yaşanmadığından eminim. Bu sözde başarısızlık, aslında, bir başarısızlık değil (Muhtemelen son teslim tarihlerini geciktiriyor), çünkü bu sadece benimle değil aynı zamanda değil (sorun altı aydan fazla bir süredir var)! - lütfen yorum yap.
Ve lütfen düzeltin. Yapamıyorsan, beni işe al. 2000 Euro'ya bir hafta içinde yapacağım.
Nasıl yani.. dosdoğru fiyasko..
Genel olarak, silinenler geri yüklenecek mi? Moderatörle yazışmaların yarısını kaybettim. Forumdan kaybolan mesajlar. Ve moderatörler boş kalan mesajları da sildi.
Neden rejim yok, yapılıyor o çalışmalar? - veya daha doğrusu, sıra şudur - önce mod açılır - sonra çalışma yapılır, sonra mod geri yüklenir.
Ben yazdıktan sonra site kapandı. Güncellemeye karar verdim - site yalan söylüyor ...
böyle çalışamazsın - peki, bu ciddi değil ..
moderatöre yeni bir yorumda, daha fazla kaybetmemek için giden açıklamayı çoğalttım.
ürün ne olacak? e-postaya gönder? yorumlara ekle? Yoksa tekrar deneyip günlerce beklemek mi?