Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1122

 
Alekseu Fedotov:

это не пройдет

почитайте

Изменил

if(Bid == PriceLine)

на

if(NormalizeDouble(Bid,4) == NormalizeDouble(PriceLine,4))

Сделки всё равно не открывает на пересечении

 
Fib0 RU:

Изменил

на

Сделки всё равно не открывает на пересечении

цена между тиками не равна 1 пункту, это равенство редкое. если снизу цена то ловить цена больше или равно. Если без контроля откуда цена. то сложнее.Типа была меньше, стала больше или равно и симметрично. Две проверки. Либо следить попадание в диапазон уровня линии плюс 5 пунктов и минус 5 пунктов. 

 
Можно ли со стороны библиотеки вывести информацию в файл(симулировать функцию Print()) чтобы проверить какие значения находятся внутри библиотечной функции, пробовал обычный способ вывода в файл средствами с++ не помогло, примеры приводил ранее, кто что может посоветовать?
 
Valeriy Yastremskiy:

цена между тиками не равна 1 пункту, это равенство редкое. если снизу цена то ловить цена больше или равно. Если без контроля откуда цена. то сложнее.Типа была меньше, стала больше или равно и симметрично. Две проверки. Либо следить попадание в диапазон уровня линии плюс 5 пунктов и минус 5 пунктов. 

Но при выставлении линий вручную без индикатора, сделки открываются пусть и не всегда. Линиии индикатора советник не видит.
 
Seric29:
Можно ли со стороны библиотеки вывести информацию в файл(симулировать функцию Print()) чтобы проверить какие значения находятся внутри библиотечной функции, пробовал обычный способ вывода в файл средствами с++ не помогло, примеры приводил ранее, кто что может посоветовать?
std::fstream, CreateFile. Что больше нравится, и то, и то - работает.
 
Vladimir Simakov:
std::fstream, CreateFile. Что больше нравится, и то, и то - работает.

А вы сами проверяли что советуете?

Вот пожалуйста так пробовал и никакой файл не создаётся и не записывается пробовал вручную тоже не работает

#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <fstream>
#include <string>


/*using std::cout;
using std::endl;
using std::cin;*/

using namespace std;


#define _DLLAPI extern "C" __declspec(dllexport)

/*_DLLAPI int __stdcall Funkt(int qa){//"C:\\Program Files(x86)\\Forex4you\\MQL4\\Experts\\Moyperviyzapisfiles.txt\\Moyperviyzapisfiles.txt"
        ofstream file;//"C:\\Users\\123\\Documents\\Visual Studio 2012\\Projects\\ConsoleApplication8\\ConsoleApplication8\\Moyperviyzapisfiles.txt"
        //"C:\\Users\\123\\documents\\visual studio 2012\\Projects\\ConsoleApplication8\\Debug\\ConsoleApplication8.dll\\Moyperviyzapisfiles.txt"
        file.open("C:\\Program Files(x86)\\Forex4you\\MQL4\\Experts\\Moyperviyzapisfiles.txt");//,ios::out
        file<<"Moyperviyzapisfiles";//(string)qa
        file.close();   
        return 12;}*/
функция подключается и возвращает 12 а работу с файлами не производит.
 

Может кто помочь, где у меня ошибка?


/////////////////////////////////////////////////

// Close the order but only if it is in profit //

/////////////////////////////////////////////////


void CloseIfInProfit(string symb , int index)

{

   for (int i = 0;i <= OrdersTotal();i++)

   {

       if( OrderSelect(i,SELECT_BY_POS,MODE_TRADES) )

       {

          if( OrderSymbol() == symb ) 

          {

            double profit = ( OrderProfit() - OrderCommission () - OrderSwap() );

            if( ( OrderType() == OP_BUY || OrderType() == OP_SELL) && ( profit >= 0 ) && (OrderMagicNumber() == MAGIC) )

            {

               OrderClose(OrderTicket(),OrderLots(),MarketInfo(symb,MODE_BID),100,Red);   // Close any open orders

               ObjectSetText("Txt2"+symb,"",TextSize,"Arial");                            // Gets rid of entry criteria message.    

            }

            if (OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)

            {

               OrderDelete(OrderTicket());                                                // Delete any pending orders

               ObjectSetText("Txt2"+symb,"",TextSize,"Arial");                            // Gets rid of entry criteria message. 

            }

          }

       }

   }

   partial[index] = false;

}


 

Здравствуйте все!

Помогите пожалуйста решить проблему.

Я написал робота на mql4. Хочу переписать этого робота на каком то близком mql языке для того чтобы можно было работать на бирже например binance, bimex у которых другой торговый терминал.

 
Seric29:

А вы сами проверяли что советуете?

Вот пожалуйста так пробовал и никакой файл не создаётся и не записывается пробовал вручную тоже не работает

функция подключается и возвращает 12 а работу с файлами не производит.
Попробуйте создавать файл там, где у Вас права доступа есть)))
 
Fib0 RU:
Но при выставлении линий вручную без индикатора, сделки открываются пусть и не всегда. Линиии индикатора советник не видит.
if((fabs(round((Bid - PriceLine}/Point))<=10)Print (Bid,"  ",PriceLine);

Попробуйте посмотреть в журнале что напечатает. Тут модуль округленной до целого разницы деленной на поинт.  

Причина обращения: