Eliminarea săgeților din grafic - limba de programare mql4

Este posibil și un scenariu. Personal, fac acest lucru făcând clic pe butonul din dreapta al mouse-ului pe grafic și selectând elementul "listă de obiecte". Apoi, apăsând combinația de taste Ctrl + A, evidențiază totul și apasă butonul de ștergere






Mi-e nevoie de 15 secunde)))))

Desigur, puteți, de asemenea, manual, dacă nu există atât de multe obiecte. Apropo, este mai convenabil să apelați lista obiectelor cu combinația Ctrl + B. Dar persoana inițial a cerut să nu se facă manual. Și există astfel de scripturi / indicatori pe care aceste mii le trag la orar la timp. Deci "mâna soldatului va fi obosită de înjunghiere".

Stimați domni # 33;
Vă mulțumim pentru răspunsurile dvs.

Dragă WTrader # 33; Dacă acest lucru nu este foarte dificil, explicați, vă rog, puțin mai mult. Am atașat o captură de ecran. Aceasta arată că există multe săgeți corespunzătoare de deschidere și închidere comenzi (săgeți plasate ca culoare specificate în echipe și OrderSend OrderClose). Orice deschidere și închidere a comenzilor se face numai de către un consilier. Problema este că numai săgețile care corespund ordinelor care nu sunt încă închise sunt lăsate pe diagramă. când ordinul a fost deschis, a apărut săgeata sa și, când sa închis, a dispărut. (Cum să vă asigurați că săgețile de închidere nu mi se pare clar: eliminați parametrul "color" în OrderClose.)). Ie În orice moment al graficului ar trebui să fie săgeți numai acele ordine care nu sunt încă închise.

Eliminarea săgeților din grafic - limba de programare mql4

În trecere, îmi voi permite o altă întrebare. După cum puteți vedea în captura de ecran, este convenabil pentru mine să am coloanele "Comandă", "Timp", "Tip" etc. au fost de lățime non-standard. Există vreo modalitate de a face terminalul să-și amintească asta? Acum, de fiecare dată când terminalul este pornit, trebuie să mutați manual limitele coloanelor în poziția dorită.

Stimați domni # 33;
Vă mulțumim pentru răspunsurile dvs.

Dragă WTrader # 33; Dacă acest lucru nu este foarte dificil, explicați, vă rog, puțin mai mult. Am atașat o captură de ecran. Aceasta arată că există multe săgeți corespunzătoare de deschidere și închidere comenzi (săgeți plasate ca culoare specificate în echipe și OrderSend OrderClose). Orice deschidere și închidere a comenzilor se face numai de către un consilier. Problema este că numai săgețile care corespund ordinelor care nu sunt încă închise sunt lăsate pe diagramă. când ordinul a fost deschis, a apărut săgeata sa și, când sa închis, a dispărut. (Cum să vă asigurați că săgețile de închidere nu mi se pare clar: eliminați parametrul "color" în OrderClose.)). Ie În orice moment al graficului ar trebui să fie săgeți numai acele ordine care nu sunt încă închise.

Eliminarea săgeților din grafic - limba de programare mql4






În trecere, îmi voi permite o altă întrebare. După cum puteți vedea în captura de ecran, este convenabil pentru mine să am coloanele "Comandă", "Timp", "Tip" etc. au fost de lățime non-standard. Există vreo modalitate de a face terminalul să-și amintească asta? Acum, de fiecare dată când terminalul este pornit, trebuie să mutați manual limitele coloanelor în poziția dorită.


Uită-te la numele cele mai multe dintre aceste săgeți și de a le elimina după închiderea ordinea în numele a ceea ce problema este că nu înțeleg, după închiderea comenzii este o săgeată și îndepărtată. Și de ce ei trag chiar dacă liniile de ordine și așa există pe diagramă. Trageți-le doar pentru a vedea unde erau ordinele și unde erau vizibile cele actuale.


Problema este că numai săgețile care corespund ordinelor care nu sunt încă închise sunt lăsate pe diagramă. când ordinul a fost deschis, a apărut săgeata sa și, când sa închis, a dispărut. (Cum să vă asigurați că săgețile de închidere nu mi se pare clar: eliminați parametrul "color" în OrderClose.)). Ie În orice moment al graficului ar trebui să fie săgeți numai acele ordine care nu sunt încă închise.
(Imagine)


Nu este nimic mai plictisitor decât înțelegerea codului altor oameni. Mai ales când nu există descriere. Pentru dezvoltatorul consilierului este necesar să se adreseze. Bănuiesc că consilierul este luat de undeva pentru nimic. În consecință, fără nici un sprijin. Nu se știe cum săgețile sunt legate de ordine. Acest lucru se poate face diferit. O soluție la această problemă a fost deja exprimată. Dacă shooterul este atât de mult, atunci este organizată o buclă pentru a verifica disponibilitatea comenzilor.

În trecere, îmi voi permite o altă întrebare. După cum puteți vedea în captura de ecran, este convenabil pentru mine să am coloanele "Comandă", "Timp", "Tip" etc. au fost de lățime non-standard. Există vreo modalitate de a face terminalul să-și amintească asta? Acum, de fiecare dată când terminalul este pornit, trebuie să mutați manual limitele coloanelor în poziția dorită.


Faceți clic pe butonul latine A pentru a anula aspectul coloanelor automate.

Stimați domni # 33;
Vă mulțumim pentru răspunsurile dvs.

Nu se știe cum săgețile sunt legate de ordine.

săgețile sunt plasate deoarece culoarea este specificată în comenzile OrderSend și OrderClose

O soluție la această problemă a fost deja exprimată.

Nu l-am înțeles. Dar odată explicată greu, fără îndoială o să-mi dau seama.
(NB: consilierul nu este "luat de undeva", ci scris de mine.) Este simplu, dar ceea ce este necesar de la el).

Faceți clic pe butonul latine A pentru a anula aspectul coloanelor automate.

Deoarece limitele coloanelor sunt deplasate față de poziția lor normală, putem presupune că marcarea automată a fost deja anulată.
Problema este asta

Acum, de fiecare dată când terminalul este pornit, trebuie să mutați manual limitele coloanelor în poziția dorită.

Cu alte cuvinte, am muta-l coloanele de frontieră modul în care eu sunt confortabil, dar data viitoare când lansa terminalul instalat în poziția standard din nou, și din nou, trebuie să se miște. Nu este tragic, desigur, dar enervant. De aceea am întrebat dacă pot fi fixate, astfel încât atunci când pornesc terminalul sunt în poziția în care le-am instalat.

În terminalul meu, lățimea coloanelor nu coboară cu fiecare pornire nouă, dacă a fost setată manual.
Și săgețile au în continuare numele lor, unde este necesar un număr unic. Pe acest număr și filtru.
Aproximativ astfel încât ar trebui să se dovedească:

void deinit ()
pentru (int cnt = valoare_min; cnt<=value_max; cnt++)
dacă (ObjectType ("Arrow" + cnt) = 22) // asigurați-vă că obiectul este o săgeată: 22 - OBJ_ARROW
ObjectDelete ("Arrow" + cnt);
>
>

Elimină toate obiectele din diagramă, introduceți orice indicator în cod.







Trimiteți-le prietenilor: