J'ai fait un de ces trucs une fois... - page 2

 
Avez-vous essayé cette approximation https://ru.wikipedia.org/wiki/Кубический_сплайн ? C'est une fonction intégrée dans Matcad. Parfois, cela donne de très bons résultats. Je n'ai même pas essayé de la programmer dans MQL (je sais combien je suis lent d'esprit). Si vous le faites, ce serait intéressant et si nécessaire, je pourrais vous aider à comparer les calculs matcadiens au code MQL.
 
Prival:
Avez-vous déjà essayé cette approximation https://ru.wikipedia.org/wiki/Кубический_сплайн ? C'est une fonction intégrée dans Matkadec. Parfois, cela donne de très bons résultats. Je n'ai même pas essayé de la programmer dans MQL, car je ne suis pas très doué. Si vous le faites, ce serait intéressant et si nécessaire, je pourrais vous aider à comparer les calculs matcadiens au code MQL.

Le fait est que l'approximation elle-même ne m'intéresse pas trop, je suis intéressé par la possibilité d'extrapolation. Et il est souhaitable d'y voir une signification physique. Et les cannelures ne semblent pas être conçues pour cela. Quel sens physique peut se cacher derrière les cannelures ?

Au fait, on s'appelait par nos prénoms, n'est-ce pas ?

 
Prival:
Je n'ai même pas essayé de le programmer en MQL. En voyant vos codes, je comprends que vous êtes bon dans ce domaine. Si vous le faites soudainement, ce serait intéressant, et si vous avez besoin d'aide pour comparer les calculs matcad et le code MQL
.

La maladresse en programmation consiste simplement à ne pas connaître quelques règles simples pour écrire des programmes avec soin. Dès qu'on les comprend, ce n'est plus le cas. Au fait, ce code souffre également de négligence - le corps de la fonction principale appelée ne doit pas contenir de code de calcul, par exemple des boucles, et tout doit être regroupé dans une fonction.

 
Andrei01:

Au fait, ce code souffre aussi d'un peu de mauvaise foi - le corps de la fonction principale appelée ne devrait pas contenir de code de calcul, par exemple des boucles, et tout devrait être regroupé dans une fonction.


D'une manière générale, éviter certaines des règles qui sont correctes pour les grands projets peut parfois accélérer un programme. Ceci est particulièrement vrai pour MQL, compte tenu des spécificités de l'application. Je peux avouer qu'il m'arrive d'utiliser du code plus ou moins structuré pour le débogage, puis de le retransformer en code linéaire :). Bien qu'il s'agisse probablement d'un extrémisme :).

Mais dans ce cas, j'avais l'intention de faire un rapide "what-if" look, donc c'est du code linéaire dans sa forme la plus pure.

 
Andrei01:

La maladresse en programmation consiste simplement à ne pas connaître quelques règles simples pour écrire des programmes avec soin.

Des conneries.

Dès qu'on les comprend, le laisser-aller disparaît immédiatement.

Des conneries.

Le corps de la fonction principale à appeler ne doit pas contenir de code de calcul

Pourquoi ça ?

Candidat:

Un jour, j'ai soudain réalisé une chose simple : l'approximation par les moindres carrés se résume essentiellement à minimiser une combinaison linéaire de vecteurs. C'est-à-dire que vous pouvez créer une sorte de fonction d'approximation universelle. Voilà l'en-tête de la fonction :

Où étiez-vous avant ? Hier encore, j'ai fini d'écrire la même chose, mais en C++. Merci, ça va être utile aussi.

 
Candid:

D'une manière générale, le fait de ne pas utiliser certaines des règles qui sont correctes pour les grands projets peut parfois accélérer considérablement un programme. Cela est particulièrement vrai pour MQL, étant donné les spécificités de l'application. Je peux avouer qu'il m'arrive d'utiliser du code plus ou moins structuré pour le débogage, puis de le retransformer en code linéaire :). Mais c'est probablement un extrémisme :).

Dans ce cas, j'avais l'intention de faire un rapide "what-if" look, donc c'est du code linéaire dans sa forme la plus pure.

Je suis d'accord qu'au stade du débogage, il est pratique de garder certains fragments temporairement ouverts... Et dans la version finale, vous pouvez dérouler l'ensemble du code pour le rendre illisible et améliorer les performances de manière insignifiante, mais dans la pratique, la lisibilité du code est toujours plus importante, notamment pour les modifications ultérieures et la recherche de bogues.

De plus, ce n'est pas le fait de réduire en fonction qui ralentira sensiblement le programme - il vaut mieux optimiser un algorithme de calcul où de nombreuses opérations peuvent être sans signification.

 
TheXpert:

1. N'importe quoi.

1. Des conneries.

2. Pourquoi ?

1. Pourquoi c'est une connerie ? Sur quoi repose cette conclusion ?

2. La structure d'un programme normalement écrit (quel que soit son degré de complexité) doit être entièrement visible et lisible dans la fonction principale.

Si un programmeur est maladroit et négligent, il est incapable de le faire, ce qui rend le programme mal lisible, y compris pour le programmeur maladroit lui-même, ce qui entraîne une multiplication des maladresses à chaque modernisation et modification du code.

 
Andrei01:

1 Pourquoi est-ce une absurdité ? Sur quoi repose cette conclusion ?

2. La structure d'un programme normalement écrit (quel que soit son degré de complexité) doit être entièrement visible et lisible dans la fonction principale.

Si un programmeur est maladroit et négligent, il n'est pas capable de le faire, ce qui rend le programme mal lisible, y compris pour le programmeur maladroit lui-même, ce qui entraîne une multiplication des maladresses à chaque modernisation et changement de code.


Peut-être que tu pourrais faire un cours magistral au lieu de blasphémer les autres.

Habituellement, après avoir dit "A", vous devriez également dire "B".

 
Vinin:


Peut-être que vous pouvez montrer une classe de maître au lieu de blasphémer les autres.

Habituellement, vous devez dire "A" et vous devez dire "B".

Qu'est-ce qui vous intéresse exactement, pourriez-vous préciser ? Comment minimiser le code dans une fonction afin que la fonction principale n'ait pas de code de calcul éparpillé ici et là ?

 
TheXpert:
Gg :) que faire si vous n'avez pas cette fonction la plus importante ? Bref, pas de commentaire :)
Faites-vous sans la fonction principale appelable start() ? Vous n'avez pas entendu parler de cette fonction ? :)
Raison: