最近昔書いたMT4のインジケーターソースがCSS等の記述制約に基づいてたりしてたり(せめてjsにしろよ)、同じ用途の変数や関数を何度も呼び出したり、配列使えば一発な物を力技でやっていたので綺麗に書き直した。

MQL4を初心者が学ぶのは、一応アリである。
仕事では多分個人事業主としてのB to C以外では全く使わないけど、投資家なら覚えておきたいところだろう。
どれも基本的な仕組みは一緒なのでMQL4を習得する事で他のプログラミング言語も書けるようになる筈だ。
わざわざCみたいな記述も制約も環境も難しい言語をやる必要はない。
ガチるならJAVAだが、はっきり言ってJAVAだって難しいし、pythonだって色んな意味で慣れた上級者向けだ(基礎をすっ飛ばす書き方な為)。

問題点を挙げるなら手続き型なので、オブジェクト指向やりたい人にはお勧めできない。その場合MQL5ってのがいいらしい。

とはいえ、オブジェクト指向って難しいんだよ。
お前ができねーだけだろって言われそうだけど、ま、まあ図星な点はあるけど付随して定義が曖昧な前提知識が必要なのよ。

定義が曖昧な前提知識ってのは音楽の調の仕組みや音階の仕組みを覚えましょうって言われる様なもんで、その概念を理解しなきゃならないから暗記すればいいってもんじゃないんだよね。
だから俺は手続き型の方が覚えることが少なくていい。と思ってんの。挫折しにくいから。

クラス、インスタンス、カプセル化、インヘリスタンス、ポリモフィズムとかそういう物の仕組みや意味を覚える必要がある。
手続き型で書いても当然プログラムは動く、オブジェクト指向って言うのは設計者の為のポリシーなんだよ。(それすらも理解するのに時間かかりそうな気がするし)

ぶっちゃけ大半の言語は仕様で足りない場合もあるけどオブジェクト指向で作ることはできる。
だから難しいことは後で覚えようぜ、な。俺は引数とか配列すら後でいいと思ってるし。もっと言えばloopすら後でもいいかなって思う。

よほど大規模で複雑じゃなきゃ力技+手続き型で動くのさ。
俺も自分で不細工で冗長なクソコード書くのは控えてるが、初心者がそれを行って、それをある程度習得してる人が非難するのって一番やっちゃいけないことだと思うのね俺は。
最終的にはそうした方がいいのは当然だけど、足を挫く真似になるし、それが無駄な事なんてずっとやってりゃいつか気付くんだよ。

だから難しい事考えないでとにかく動くコードを作ろうぜ。
投資に興味あるならMT4やろうぜ。って話だ。