[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 390

 
chief2000 >>:

Я экспортировал CSV-файл (1 мин с 1999 года) из МТ одного брокера. Попытался импортировать в МТ другого брокера - 1 минутки получил

без проблем, с 1999. Но вот что-то не пойму как во 2-м МТ получить 5, 15-мин и т.д. графики? - Т.е. после импортирования 1 минуток переключился на

5 минутный график и похоже МТ пытается докачать их из интернета, вместо конвертирования их из уже имеющихся 1-минуток.

Перегружал МТ - не помогло.

- Есть какое-нибудь нормальное решение для конвертирования 1 МИН в более высокие таймфреймы?

Bien sûr, il y aura des téléchargements, alors pourquoi y aurait-il une conversion des procès-verbaux.

Vous pouvez prendre le CSV original et exécuter un programme écrit par vous-même pour obtenir tous les délais standard dans les fichiers de sortie et les importer.

 

Bonjour à tous !

Il n'y a aucun moyen pour moi d'implémenter un algorithme simple :

Après un achat/vente, un ordre se ferme après 2 barres.

Je ne vois rien de mieux qu'une minuterie, mais la minuterie est liée à une période de temps et j'en ai besoin après n barres.

 

Bonjour et encore une fois une question à laquelle je ne peux pas répondre moi-même.

J'écris un conseiller expert pour m'entraîner à placer des ordres lorsqu'une condition apparaît. La tâche est simple : ne négocier qu'une seule position. Si le prix est supérieur à МА10, j'achète ; s'il est inférieur, je vends. Je veux tester la possibilité d'utiliser des magiciens des ordres afin que le conseiller expert ferme exactement les ordres qu'il a lui-même placés. Il existe également la deuxième variante des conditions d'achat et de vente (je ne les ai pas encore ajoutées). Et il devrait déterminer lui-même à quelle condition appartient l'ordre - le nombre magique est fixé dans la fonction qui déclenche l'ouverture d'une position. De même, en fonction des conditions, il doit déterminer au tout début s'il existe une position ou non, puis rechercher des conditions d'achat ou de vente.


Voici le code :


// Мувинг и цена
double MA10;
double Price;
// Есть или нет позиция и ее номер
int Pos;
int Magic;
double Lot=0.1;
double SL;
double TP;
int Slippage=3;

//--------------------------------------------------------------------

void start()
{
MA10 = iMA(NULL,0,10,0,0,0,0);
Price = Bid;

CheckPos();
}

//--------------------------------------------------------------------

void CheckPos()
{
if(Pos==0)
CheckBuy();
CheckSell();
}

//--------------------------------------------------------------------
// Поиск условий для покупки и продажи
//--------------------------------------------------------------------

void CheckBuy()
{
if (NormalizeDouble(Price,Digits) > NormalizeDouble(MA10,Digits))
Magic=10;
Buy();
return;
}

//--------------------------------------------------------------------

void CheckSell()
{
if (NormalizeDouble(Price,Digits) < NormalizeDouble(MA10,Digits))
Sell();
return;
}

//--------------------------------------------------------------------
// Выставление ордеров
//--------------------------------------------------------------------

void Buy()
{
string Symb=Symbol();
Pos=1;

OrderSend(Symb, OP_BUY, Lot, Ask, Slippage, SL, TP, NULL, Magic);
return;
}
//--------------------------------------------------------------------

void Sell()
{
Pos=0;
OrderClose(Magic, Lot, Bid, Slippage);
return;
}


Et ce code, malgré le fait qu'il ne devrait négocier qu'une seule position (oui, nous devrions chercher des conditions de vente, non, nous devrions chercher des conditions d'achat), il ouvre un grand nombre de positions et ne les ferme pas. Ma tête est déjà cassée. Pouvez-vous me dire ce qui ne va pas ?

 
sigma7i >>:

Всем привет!

Простой алгоритм никак не могу реализовать:

После покупки/продажи закрытие ордера через 2 бара.

Кроме таймера ничего лучше придумать не могу, но у таймера есть привязка к тайм фрейму, а мне необходимо через n баров.


Passez en revue les ordres ouverts, voyez quand ils ont été ouverts et comparez avec l'heure actuelle, deux barres se sont écoulées et fermez-les.
 
splxgf >>:

Ну естественно будет происходить докачка, с чего вдруг она должна происходить конвертация из минуток.

Можно взять исходный CSV и прогнать самописной прогой для получения на выходе в файлах всех стандартных таймфремов и импортировать их.

Il semble que j'aie confondu avec MT5 - il semble que les intervalles de temps supérieurs soient générés à partir de périodes d'une minute, alors que dans MT4, c'est la même chose qu'à l'ancienne.

 
Vinin >>:

Скрипт в CodeBase лежит, так и называется период конвертор

Merci !

 

Le convertisseur de période est bon pour les graphiques, mais vous ne pouvez pas l'envoyer à un testeur.

Oups, j'ai regardé comment ça marche, ça écrit bien un fichier historique recodé. https://www.mql5.com/ru/code/8560

 

И вот он, зараза, несмотря на то, что должен торговать только одной позицией (есть - ищем условия на продажу, нет - ищем условия на покупку), открывает большое количество позиций, и потом их не закрывает. Я уже голову поломал. Подскажите, что не так?

dans CheckBuy ajouter un ordre d'ouverture si supérieur à zéro, puis sortir.

 
splxgf >>:

в CheckBuy добавь иф опен ордерс больше нуля, то выходим.

Oui, je vais m'en occuper. Merci. (gloussements)

Mais quand même, pourquoi achète-t-il beaucoup de positions en premier lieu ? Après tout, au début, on lui dit immédiatement que s'il y a une position - tu ne vas pas ici, tu vas là ? Selon mon idée, il ne devrait même pas entrer dans ce morceau de code. Ou peut-être que je ne le comprends pas ?

 
Jahspear >>:

Ага, щас добавлю. Спасибо.

Но всё-таки - почему он вообще покупает мого позиций? Ведь вначале ему сразу говорится, что если позиция есть - ты сюда не ходи, ты туда ходи? Он, по задумке, в этот кусок кода даже попадать не должен. Или я что не понимаю?


Bien que j'ai regardé le code de plus près maintenant, il est difficile de le comprendre sans un demi-litre, je vais vous envoyer mon email et essayer d'expliquer ce que j'ai fait là.