ATcl - Interprete Tcl per MT4 - pagina 8

 

Lo script è pronto e incluso nella libreria ATcl.
Nella libreria si trova nel percorso Librerie/ATcl/app/mq45dist.tcl

Ha bisogno di (improvvisamente) tcl e zip per funzionare :-)

Se lo si esegue senza parametri, chiederà di selezionare qualsiasi file di progetto e aprirà una console per visualizzare il log.

Se passate il nome del file come parametro, non aprirà nessuna finestra, funzionerà come un'applicazione console.

Allego lo script tcl.

Oltre all'aggiunta dello script, sono stati corretti alcuni bug,
e ha rilanciato gli archivi della libreria su http://nektomk.ru/ru:atcl:install e SourceForge https://sourceforge.net/projects/mt-atcl/

ATcl
  • nektomk.ru
Рад представить вам библиотеку ATcl v1 beta - интерпретатор Tcl для MT4. Расширяте возможности ваших программ MQL, используйте СУБД, дополняйте сетевыми средствами, интегрируйте их с любыми программами используя Tcl.
File:
 

Un altro, e più semplice (e più urgente) uso: configurazioni di software/esperti/pannelli e altro. Cioè tutti i tipi di file di configurazione :-)

Con ATcl è molto facile tenere tutto in semplici file di testo.

# комментарии начинаются с # и идут до конца строки

# именованное значение "use_gui"
set use_gui true

# список (вектор) значений
set vector { 1.0 2.0 0.12 }

# список из список (матрица)

set matrix {
  { 1 2 3 }
  { 4 5 6 }
  { 7 8 9 }
}

# хеш ( ключ->значение)
set option(key1) "например строка"
set option(key2) "другая строка"

# можно сразу

array set option {
   key3 0.21
   another_key { можно задавать произвольные значения }

}

ed è molto facile leggere tutto in MT4:

ATcl *tcl=new ATcl;     // создадим новый интерпретатор (их можно много делать)

tcl.Eval("source MQL4/Files/myconfig.tcl"); // прочесть конфигурацию

bool use_gui = tcl.Long("use_gui",0); // взять переменную "use_gui" как long, или вернуть 0 по умолчанию

double vector[];
tcl.ToArray("vector",vector); // копировать список в массив.

double matrix[][3];
tcl.ToArray("matrix",0,matrix[0]); // читать 1-ю строку матрицы
tcl.ToArray("matrix",1,matrix[1]); // и так далее
tcl.ToArray("matrix",2,matrix[2]);

string option_key1=tcl.String("option(key1)",""); // хеши можно читать указывая полное имя
string option_key2=tcl.String("option","key2",""); // или отдельно ключ, значение

delete tcl; // всё прочитали, интерпретатор больше ненужен

A proposito, come bonus, potete anche leggere le variabili d'ambiente built-in/sistema :-)

string APPDATA=tcl.String("env","APPDATA",""); // окружение Windows - %APPDATA%
string TEMP=tcl.String("env","TEMP","");     // рекомендованный каталог для временных файлов %TEMP%

 

Sulla base di un post nella parte inglese del forum e per spiegare

"Perché tutto questo è necessario e perché è così".

Abbozzato un articolo, secondo me risulta abbastanza buono e utile. Dedicato alla questione del perché un'altra lingua potrebbe essere utile e come viene selezionata.

Prima bozza della prima parte - http://nektomk.ru/atcl:why questa va nella domanda e nell'identificazione dei requisiti.

Se ci sono domande, commenti, suggerimenti, risponderò e aggiungerò qualcosa :-)

La seconda parte è una discussione di tutti i linguaggi e sistemi menzionati. Ovviamente, è altamente specializzato e richiede un background

 

Non scrivevo così tanti testi da molto tempo :-) ma visto che ho promesso e iniziato, devo farlo...

come continuazione della prima parte sulla selezione della lingua,

Ho abbozzato la seconda parte di http://nektomk.ru/atcl:whynot dove ho guardato un bel po' di sistemi.

Anche le persone lontane da ATcl e dalle idee di estendere le capacità di MQL possono trovarlo utile e non senza interesse.

Sarà pubblicato insieme alla prima parte nei blog locali. Basta fare una "pausa" e rileggere + correggere la grammatica e i giri di parole :-)

aggiornamento: la prima parte è pubblicata anche sui blog locali https://www.mql5.com/ru/blogs/post/718610 in modo da poterla leggere senza lasciare il sito

выбор языка, часть 2
  • nektomk.ru
Взял смелость и в статье объединяю большие «числогрызы» в одну главу. Они не решат наших задач про «взаимодействие с миром», про GUI, и так далее, но они востребованя. На них, с их помощью, благодаря им делаются и отрабатываюся торговые стратегии. Начну с R, так получилось что с практикой его применения в MT знаком очень плотно. Фактически это...
 
In base alla corrispondenza - massimo di istruzioni dettagliate per l'installazione

1. È necessario installare Tcl 32 bit per Windows

Purtroppo ActiveState ha recentemente (un mese o due fa) smesso di supportare 32bit e
ha rimosso il programma di installazione dai download disponibili. È stata la distribuzione più conveniente per Windows
e ATcl è stato sviluppato su di esso. Non ho ancora testato altre distribuzioni, lo controllerò questo fine settimana.

------------------------------
Installare Tcl 32bit su Windows
------------------------------

1.1 Distribuzione BAWT

1.1.1 Scaricare la distribuzione da import of functions from DLL".
BAWT - Downloads
  • Paul Obermeier
  • www.bawt.tcl3d.org
BAWT - Build Automation With Tcl
 

Buon pomeriggio interessato al tuo progetto, ma c'è un problema con MT4 che cancella sia EAs che indicatori, potresti per favore consigliare quale sia la possibile ragione.

 
kovtynmen:

Buon pomeriggio interessato al tuo progetto, ma c'è un problema con MT4 che cancella sia EAs che indicatori, potresti per favore consigliare quale sia la possibile ragione.

Non capisco il problema ;-)

Cosa intendi con "rimuove sia gli EA che gli indicatori"?

 
Maxim Kuznetsov:

Non capisco il problema ;-)

Cosa significa "cancellare sia gli EA che gli indicatori"? Spiega il punto, se puoi con degli screenshot

Sì certo, ecco gli screenshot del registro

Pannello di commercio esperto

Indicatore personalizzato CawtExcel

 
kovtynmen:

Sì, certo, ecco gli screenshot del registro


1. Quando si esegue l'Expert Advisor/indicatore, assicurarsi di aver abilitato l'importazione da DLL

2. Nell'istruzione precedente è evidenziato - se avete installato la distribuzione BAWT, dovete copiare tcl86.dll in tcl86t.dll nella directory c:/tcl/bin, cioè aggiungere la lettera t al nome della dll

non ci dovrebbero essere altri problemi, tranne che per permettere di usare la DLL nel terminale e distribuire il nome della DLL - solo su VDS pulito, mettere MT4, mettere BAWT e la libreria ATcl da sourceforge (non "variant-in-development", ma pubblicamente disponibile). Il volo è ok

 
Maxim Kuznetsov:

1. quando si esegue EA/indicator assicurarsi che l'importazione da DLL sia abilitata

2. Nell'istruzione precedente è evidenziato - se avete la distribuzione BAWT, dovete copiare tcl86.dll in tcl86t.dll nella directory c:/tcl/bin, cioè aggiungere la lettera t al nome della dll

non ci dovrebbero essere altri problemi, tranne che per permettere di usare la DLL nel terminale e distribuire il nome della DLL - solo su VDS pulito, mettere MT4, mettere BAWT e la libreria ATcl da sourceforge (non "variant-in-development", ma pubblicamente disponibile). Il volo è ok

Grazie, già provato tutto e controllato il risultato è lo stesso. Proverò di nuovo tutto domani insieme a mt4. Anche se c'è una possibilità che potrebbe essere qualcosa con i diritti di accesso su Win 10.