[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 501

 
baykanur:

src inséré

Je ne sais pas ce qui a été commenté

il y a une divergence dans le nombre de transactions rentables dans le testeur de stratégie.

Dans cette forme (sans contrôle de l'ouverture de la nouvelle barre) tester UNIQUEMENT par le modèle : "Tous les ticks..." dans le testeur de stratégie.

N'utilisez pas les valeurs de l'indicateur sur la 0ème barre, si vous n'utilisez pas les prix d'ouverture, mais les prix de clôture dans ces valeurs, c'est-à-dire, changez cette partie du code - mettez 1 au lieu de 0

 
      MA2 = iMA(NULL,0,2,0,MODE_SMA,PRICE_CLOSE,1);
      MA3 = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,1);
      Fr = iForce(NULL,0,2,MODE_SMA,PRICE_CLOSE,1);

ou utiliser les prix ouverts, c'est-à-dire

 
      MA2 = iMA(NULL,0,2,0,MODE_SMA,PRICE_OPEN,0);
      MA3 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,0);
      Fr = iForce(NULL,0,2,MODE_SMA,PRICE_OPEN,0);
 
griha:
Bon après-midi,
1. je veux ouvrir une position pour 3-4% de mon compte en fonction de mon money management. Existe-t-il un calculateur permettant de déterminer la taille de lot requise pour n'importe quelle paire (ou au moins les paires les plus populaires) ? Ou comment calculer manuellement la taille du lot, par exemple EURUSD ?
2. L'aide du terminal n'explique pas ce qu'est le "Niveau" calculé dans l'onglet "Terminal/Trading". Qui peut expliquer ce que cela signifie ?

Lot maximal que vous pouvez ouvrir sur tous les dépôts (voir code). En général, il est plus correct de commencer par deux paramètres : les stops et l'effet de levier.

double MaxmaxLots(int cmd) 
{
    double result = 0;
    double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
    double v = MarketInfo(Symbol(), MODE_MINLOT);
    double mult = 100;
    
    while (true) {
        if (AccountFreeMarginCheck(Symbol(), cmd, v + lotStep * mult) > 0) { 
            v = v + lotStep * mult;
        } else {
            mult = mult / 10;
            
            if (mult < 1) {
                if (AccountFreeMarginCheck(Symbol(), cmd, v) > 0) { 
                    result = v;
                }
                break;
            }
        }
    }
    
    return(result);
}         
 
Une petite suggestion aux admins : faire un bouton - question répondue (quand quelqu'un y répond), et si pas répondue, les questions prioritaires étaient en haut du classement. Bien que ce soit probablement difficile - la programmation en général n'est pas facile :) Je peux, bien sûr, question sans réponse, dupliquer 10 fois, mais à quoi bon - le forum ne se développera pas du contenu sémantique, et les doublons inutiles.
 

Bonjour ! !!! Aidez-moi à résoudre un problème. Deux indicateurs dans une fenêtre CCI et MACD, l'un a des niveaux fixes, l'autre a des max et min flottants. Comment automatiser les deux par rapport au niveau zéro du CCI.

 

Pouvez-vous me dire comment ouvrir une seule commande par période de temps ? Par exemple, il y a une section entre la barre 1 et la barre 20. Pendant cette période, il faut ouvrir un ordre sur chaque fractale, et un ordre pour chaque fractale. Comment cela peut-il être fait ?

 
sss2019:

Pouvez-vous me dire comment ouvrir une seule commande par période de temps ? Par exemple, il y a une section entre la barre 1 et la barre 20. Pendant cette période, il faut ouvrir un ordre sur chaque fractale, et un ordre pour chaque fractale. Comment cela peut-il être fait ?

L'ordre est ouvert sur la barre actuelle. Avez-vous vu une fractale sur la barre actuelle ?
 
artmedia70:
L'ordre s'ouvre sur la barre actuelle. Avez-vous vu une fractale sur la barre actuelle ?

Plusieurs ordres peuvent être ouverts sur la barre en cours. Les ordres en attente sont ouverts aux prix des fractales qui ont été trouvées pendant la période de temps : les inférieurs sont à vendre et les supérieurs sont à acheter. Nous devrions faire un ordre ouvert sur une fractale.
 
sss2019:

Plusieurs ordres peuvent être ouverts sur la barre en cours. Les ordres en attente sont ouverts aux prix fractals qui ont été trouvés pendant la période de temps, les plus bas sont à la vente et les plus hauts sont à l'achat. Nous devrions faire un ordre ouvert sur une fractale.

Si vous parlez de placer des ordres en attente, je ne vous comprends pas. Ouvrir un ordre, c'est ouvrir une position sur le marché, comme je le comprends. Définir un ordre, c'est placer un ordre en attente.

Faites un chèque de cette façon. Trouvez une fractale, trouvez son prix et son heure.
Vérifiez s'il existe un ordre en attente dont le prix est égal au prix de la fractale et si l'ordre est placé au moment de la barre avec la fractale.
Si ce n'est pas le cas, définissez-en un.

 
artmedia70:

Si vous parlez de placer des ordres en attente, je ne vous comprends pas. Ouvrir un ordre, c'est ouvrir une position sur le marché, comme je le comprends. Définir un ordre, c'est placer un ordre en attente.

Faites un chèque de cette façon. Trouvez une fractale, trouvez son prix et son heure.
Vérifier s'il existe un ordre fixe dont le prix est égal au prix de la fractale et à l'heure de la barre avec la fractale.
Si ce n'est pas le cas, placez-le.


S'il y a deux fractales avec le même prix, nous devrions ouvrir deux ordres, mais un seul ordre s'ouvrira. Et si nous ne vérifions que par le temps, alors à l'ouverture d'une nouvelle bougie, les ordres répétés seront ouverts par les mêmes fractales.
 
sss2019:

Et s'il y a deux fractales avec le même prix, nous devrions ouvrir deux ordres et un seul ordre s'ouvrira. Et si nous ne vérifions que par le temps, alors à l'ouverture d'une nouvelle bougie, les ordres répétés seront ouverts par les mêmes fractales.

C'est pourquoi nous devons nous souvenir du prix et de l'heure de la fractale . Si l'heure de la fractale, pour laquelle une commande a déjà été passée, coïncide avec l'heure de la fractale, alors nous n'avons pas besoin de placer quoi que ce soit ; la commande est déjà en place. Si l'heure de la fractale trouvée ne coïncide pas avec l'heure de la fractale pour laquelle une commande a déjà été passée, il s'agit alors d'une nouvelle fractale et une autre commande doit être passée même si les prix des deux fractales sont identiques.

Nous utilisons le temps d'une fractale pour déterminer si un ordre est passé ou non sur cette fractale. Et nous utilisons le prix de la fractale pour déterminer le prix d'ouverture de l'ordre en attente.

Raison: