Яндекс GPT и программирование на MQL4

 

В последнее время использую Яндекс GPT в качестве поисковой системы для ответа на вопросы по программированию на MQL4, удобно: не надо рыться в справочнике или искать в других источниках.

Ниже приведу довольно не ординарный пример.

Предлагаю и другим выложить опыт использования Яндекс GPT или других GPT, а их много, например, разродился Сбер. 

 

Итак, решаю задачу собственного учета ордеров в советнике, который может открывать много ордеров.

Открываю ордер - помещаю тикет ордера в таблицу ордеров, Закрываю ордер - удаляю тикет из таблицы  ордеров.

Тут же выясняется, что в таблице остаются ордера, закрытые по ТР/SL.


Итак, задаю вопрос Яндекс GPT:

как узнать какой ордер был закрыт по стоплосс в MQL4?

Ответ

Чтобы узнать, какой ордер был закрыт по стоп-лоссу в MQL4,

можно воспользоваться функцией  OrderSelect с параметром  SELECT_BY_STOP для выбора ордеров, закрытых по стоп-лоссу.

Вот пример кода, который поможет вам определить тикет ордера, закрытого по стоп-лоссу:

// Определяем функцию для получения тикета ордера, закрытого по стоп-лоссу
int GetOrderTicketByStopLoss(void)
{
    int ticket = 0;
    

                    
                    
                    
// Определяем функцию для получения тикета ордера, закрытого по тейк-профиту
int GetOrderTicketByTakeProfit(void)
{
 int ticket = 0;
 
 // Выбираем все ордера, закрытые по тейк-профиту
 if (OrderSelect(SELECT_BY_TP, MODE_TRADES))
 {
 // Получаем тикет первого выбранного ордера
 ticket = OrderTicket();
 
 // Выходим из цикла, чтобы избежать бесконечного цикла
 break;
 }
 
 return ticket;
}
    // Выбираем все ордера, закрытые по стоп-лоссу     if (OrderSelect(SELECT_BY_STOP, MODE_TRADES))     {         // Получаем тикет первого выбранного ордера         ticket = OrderTicket();                  // Выходим из цикла, чтобы избежать бесконечного цикла         break;     }          return ticket; }

Вопрос:

как узнать какой ордер был закрыт по тэйкпрофит в MQL4?


Ответ

Чтобы узнать, какой ордер был закрыт по тейк-профиту в MQL4,

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

Вот пример кода, который поможет вам определить тикет ордера, закрытого по тейк-профиту:

// Определяем функцию для получения тикета ордера, закрытого по тейк-профиту
int GetOrderTicketByTakeProfit(void)
{
 int ticket = 0;
 
 // Выбираем все ордера, закрытые по тейк-профиту
 if (OrderSelect(SELECT_BY_TP, MODE_TRADES))
 {
 // Получаем тикет первого выбранного ордера
 ticket = OrderTicket();
 
 // Выходим из цикла, чтобы избежать бесконечного цикла
 break;
 }
 
 return ticket;
}

Лезу в справочник, может что-то поменялось, и  чтоб уж точно и задаю следующий вопрос:

Вопрос

нет SELECT_BY_TP в МQL4

Ответ

Извините за путаницу в предыдущем ответе.

В MQL4 действительно нет прямого способа выбрать ордера,

закрытые по тейк-профиту, используя параметр  SELECT_BY_TP. Однако,

вы можете использовать функцию  OrderSelect с параметром  SELECT_BY_TRADE для выбора всех ордеров, включая те,

что были закрыты по тейк-профиту.

Вот пример кода, который поможет вам определить тикет ордера, закрытого по тейк-профиту:

// Определяем функцию для получения тикета ордера, закрытого по тейк-профиту
int GetOrderTicketByTakeProfit(void)
{
 int ticket = 0;
 
 // Выбираем все ордера, включая те, что были закрыты по тейк-профиту
 if (OrderSelect(SELECT_BY_TRADE, MODE_TRADES))
 {
 // Получаем тикет первого выбранного ордера
 ticket = OrderTicket();
 
 // Выходим из цикла, чтобы избежать бесконечного цикла
 break;
 }
 
 return ticket;
}


Это же надо, признает ошибки и пытается их исправить!

 
СанСаныч Фоменко #:


Ответ

Извините за путаницу в предыдущем ответе.

В MQL4 действительно нет прямого способа выбрать ордера,

закрытые по тейк-профиту, используя параметр  SELECT_BY_TP. Однако,

вы можете использовать функцию  OrderSelect с параметром  SELECT_BY_TRADE для выбора всех ордеров, включая те,

что были закрыты по тейк-профиту.

Вот пример кода, который поможет вам определить тикет ордера, закрытого по тейк-профиту:


Это же надо, признает ошибки и пытается их исправить!

Интересно, как он будет извиняться за SELECT_BY_TRADE и за break без цикла и switch?

 
Ihor Herasko #:

Интересно, как он будет извиняться за SELECT_BY_TRADE и за break без цикла и switch?

Надо ткнуть его конкретно. Я показал, что реагирует на туфту.

Более того.

Сбер выпустил аналог и я ему задал вопрос в рамках R и получил ответ на питоне.

Еще раз задал вопрос в рамках R и опять ответ на питоне.

Тогда прямо написал, что мне нужны ответы на R.

В ответ  получил извинения, что не владеет R.

Пару дней назад захожу снова и задаю вопрос в рамках R. Получаю ответ на R!

Учатся,схатывают не лету, причем не вообще "учатся", а учатся, реагирую на пользователя.

 

Яндекс только злить пользователей умеет и сказки из колонки по просьбе читать


 

а теперь Aria 


 

продолжение



 

эта штука поняла даже что такое RESET в Return)

проверьте у кого есть доступ к другим ChatGPT вот этот код

if(rates_total<=Length)
return(RESET);

int start, bar;

if(prev_calculated>rates_total || prev_calculated<=0)
{

start=min_rates_total; // "0" -> D'1970.01.01 00:00';
//start=rates_total-3; //
}
else
start=rates_total-1; //

 Aria и посложнее расшифровывает и сочиняет хотя-бы в какую сторону копать

 
СанСаныч Фоменко:

В последнее время использую Яндекс GPT 

не тот GPT)
o1 берите
 
СанСаныч Фоменко #:

Надо ткнуть его конкретно. Я показал, что реагирует на туфту.

Именно это и настораживает. Если бы его не уличили во лжи (или просто ошибке), пользователь был бы в полной уверенности, что ему выдали правдивую (правильную) информацию. То есть на данном этапе развития ИИ еще нужно постоянно перепроверять, чтобы не сесть в лужу.

 
secret #:
не тот GPT)
o1 берите

У меня  Яндекс GPT pro - платный, обещают брать деньги с февраля.