Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1926

 
Maxim Kuznetsov #:

Dessiner (ok, cartographier) des niveaux de type "progression, il peut y avoir un stop-loss" est généralement assez facile. Mais le POURQUOI n'est pas très clair.

N'avez-vous pas essayé de demander au client ce qu'il veut en détail ?

PS / et, oui, il faut faire une "pause créative", je pense que le client comprendra la situation.

Il a réfléchi pendant plus d'une semaine et c'est décidé.

Au départ, c'était différent, il a été remis, mais après une semaine de pause, il a signalé les innovations. Je comprends que la mission a été menée à bien, mais il me semble incorrect de laisser le client, même si cela ne faisait pas partie du mandat initial.

Ma demande est toujours valable !

 
Vitaly Muzichenko #:

Il a réfléchi pendant plus d'une semaine et la décision a été prise.

Au départ, c'était différent, c'est ce qui a été remis, mais après une semaine de pause, il a signalé les innovations. Je comprends que la mission a été accomplie, mais d'une certaine manière, il n'est pas juste de laisser le client, même si cela ne faisait pas partie du cahier des charges initial.

Ma demande est valable !

Calmez-vous Vitaly, la demande de quoi ?

pour faire des modifications à l'EA ? il n'y a pas de code et nulle part pour faire des modifications. Et il n'est pas tout à fait correct de modifier l'ordre des freelances dans ce fil. En général, aucun des deux camps

void OnStopLoss() {

    // some code placed here

}

n'est pas susceptible d'aider.

 
Maxim Kuznetsov #:

Calmez-vous Vitaly, quelle est la demande ?

Pour faire des modifications à l'EA ? Il n'y a pas de code et nulle part pour faire des modifications. Et il n'est pas tout à fait correct de corriger l'ordre des freelances dans ce fil. En général, aucun des deux camps

void OnStopLoss() {

    // some code placed here

}

n'est guère utile.

Ce n'est pas vraiment un EA, c'est un chalut séparé qui s'accroche à un graphique et garde la trace de tous les symboles.

Le code est lourdement gonflé

 
Vitaly Muzichenko #:

Il y a une position et un stoploss dessus.

Dans les réglages, le chalut est de 30. Montrez donc la ligne au niveau où le chalut se déclenchera, et ainsi les 7 lignes : 30-60-90-120-150-180-210, comme une progression.

Passé 30 et atteint la ligne, le chalut déplace les stops au niveau du cours ouvert, en atteignant 60, déplace les stops à +30 du cours ouvert, c'est-à-dire au niveau où le premier stop s'est déclenché, etc.

Je suppose qu'il veut contrôler les lignes du graphique, mais cela est plus compliqué et doit être simplifié.

Sinon, mettez 7 paramètres pour les niveaux dans les réglages.

P.S. Désolé pour la longue réponse, je perdais internet.

7 paramètres n'est pas une option) 7 noms de lignes horizontales dans les paramètres qu'il dessinera et nommera. Et nous allons danser à partir d'eux. Et si les paramètres, l'amplitude du mouvement des prix et le nombre de niveaux. Calculer et dessiner. Eh bien, lorsque le niveau se déclenche, il devrait dessiner la ligne sl et si le sl coïncide avec le niveau de prix, il devrait changer de couleur.
 
Valeriy Yastremskiy #:
7 paramètres n'est pas une option) 7 noms de lignes horizontales dans les paramètres qu'il dessinera et nommera. Et nous devrions en tenir compte. Et si les paramètres, l'amplitude du mouvement des prix et le nombre de niveaux. Calculer et dessiner. Eh bien, lorsque le niveau se déclenche, il devrait dessiner la ligne sl et si le sl coïncide avec le niveau de prix, il devrait changer de couleur.

Vous avez en quelque sorte besoin d'un algorithme qui dessine des lignes aux prix calculés.

Lorsque toutes les positions sont fermées, elles doivent être supprimées.

 
Valeriy Yastremskiy #:
7 paramètres n'est pas une option) 7 noms de lignes horizontales dans les paramètres qu'il dessinera et nommera. Et nous devrions danser à partir d'eux. S'il s'agit de paramètres, l'amplitude du mouvement des prix et le nombre de niveaux. Calculer et dessiner. Eh bien, lorsque le niveau se déclenche, il devrait dessiner la ligne sl et si le sl coïncide avec le niveau de prix, il devrait changer de couleur.

Clarification :

В настройках трал 30. Значит показать линии на уровнях, где сработают тралы, и так все 7 линий: 30-60-90-120-150-180-210, типа прогрессии.

Прошли 30 и достигли линии, трал переводит стопы на уровень цены открытия, по достижении 60, переводит стопы на +30 от цены открытия, то есть на уровень, где срабатывал первый стоп и тд.

Changez le code, tracez des lignes et rien d'autre.


Merci !

 
Bon après-midi. Bien conseiller un nouveau venu, qui essaie de télécharger un expert sur le marché. Donne l'erreur "Error ! Mauvais type de fichier téléchargé, .....ex4 - Script.
Votre catégorie de produit - Experts, le type de programme correct pour lui - Expert" Mais c'est un Expert ! Où dois-je creuser ? Je me bats depuis 2 jours !
 
Vycheslav Vyrikov #:
Après-midi. Pouvez-vous conseiller un débutant ? J'essaie de télécharger un conseiller expert sur le marché. Donne l'erreur "Error ! Mauvais type de fichier chargé, .....ex4 - Script.
Votre catégorie de produit - Experts, le type de programme correct pour lui - Expert" Mais c'est un Expert ! Où dois-je creuser ? Je me bats depuis 2 jours !

Creusez vers les manipulateurs standards.

Je suis sûr que vous avez start() ici, pas OnStart().

Документация по MQL5: Обработка событий / OnStart
Документация по MQL5: Обработка событий / OnStart
  • www.mql5.com
OnStart - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko #:

Vous avez en quelque sorte besoin d'un algorithme qui dessine des lignes aux prix calculés.

Lorsque toutes les positions sont fermées, elles doivent être supprimées.

double sumLots[2]=0,weight[2]=0;

for(int pos=OrdersTotal()-1;pos>=0;pos--) {

   if (! OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) continue;

   // тут всякие прочии фильтры

   DrawOrderLevels(); // нарисовать уровни куда может перекатиться стоп-лосс конкретного ордера

   // расчёт общих позиций

   int type=OrderType();

   sumLots[type]+=OrderLots();

   weight[type]+=OrderLots()*OrderOpenPrice();

}

double avg[3]; // общии позиции

if (sumLots[OP_BUY]!=0) avg[OP_BUY]=weight[OP_BUY]/sumLots[OP_BUY]; 

if (sumLots[OP_SELL]!=0) avg[OP_SELL]=weight[OP_SELL]/sumLots[OP_SELL]; 

// совокупная позиция

int posType; // тип

double posPrice; // цена

double posLots; // объём

if (sumLots[OP_BUY]>sumLots[OP_SELL) { posType=OP_BUY; posPrice=avg[OP_BUY]; posLots=sumLots[OP_BUY]-sumLots[OP_SELL]; }

else { posType=OP_SELL; posPrice=avg[OP_SELL]; posLots=sumLots[OP_SELL]-sumLots[OP_BUY]; }

DrawPriceLevels(OP_BUY,avg[OP_BUY]); // нарисовать уровни суммарной позы в BUY

DrawPriceLevels(OP_SELL,avg[OP_SELL]); // нарисовать уровни суммарной позы в SELL

DrawPriceLevels(posType,posPrice); // уровни общей позиции

Dans les noms des niveaux horizontaux, ajoutez le numéro du ticket. Parfois (si nécessaire), vérifier - si le billet n'est pas sur le marché, alors tous les niveaux avec son nom devraient être supprimés

 
Artyom Trishkin #:

Creusez vers les manipulateurs standards.

Je suis sûr que vous avez start() ici, pas OnStart().

Artyom vous êtes déjà fatigué et vous avez commencé à faire des inexactitudes vous-même. Pour l'expert que Vyacheslav essaie de charger, la fonction de traitement des événements devrait être OnTick().
Raison: