Например в коде Close all positions есть одна из функций. Если поискать по моим кодам, то обнаружится и вторая функция.
Похоже на правду?
//+------------------------------------------------------------------+//| Test EA.mq5 |//+------------------------------------------------------------------+#property version"1.000"//---#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>
CAccountInfo m_account; // account info wrapper//--- input parametersdouble InpStepEquity=100; // Step equity//---double m_start_equity=0.0;
int m_magic = 29448;
CPositionInfo m_position; // trading object//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//---
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
if(CalculateAllPositions()==0)
m_start_equity=m_account.Equity();
if(m_account.Equity()>=m_start_equity+InpStepEquity)
{
CloseAllPositions();
return;
}
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+//| Close all positions |//+------------------------------------------------------------------+void CloseAllPositions()
{
for(int i=PositionsTotal()-1;i>=0;i--);// returns the number of current positions
}
//+------------------------------------------------------------------+//| Calculate all positions |//+------------------------------------------------------------------+int CalculateAllPositions()
{
int total=0;
for(int i=PositionsTotal()-1;i>=0;i--)
if(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()==Symbol() && m_position.Magic()==m_magic)
total++;
//---return(total);
}
Ты, когда пишешь строки кода (все равно, сам или копируешь откуда-то) должен понимать, зачем нужен КАЖДЫЙ символ, который ты написал. Простое "механическое" копирование до добра не доведет.
При копировании - всегда надо спрашивать себя - "зачем тут вот эта конструкция, вот это ключевое слово, вот этот символ".
В приведенном фрагменте функция CloseAllPositions() просто перебирает позиции, совершенно ничего с ними не делая.
Ты, когда пишешь строки кода (все равно, сам или копируешь откуда-то) должен понимать, зачем нужен КАЖДЫЙ символ, который ты написал. Простое "механическое" копирование до добра не доведет.
При копировании - всегда надо спрашивать себя - "зачем тут вот эта конструкция, вот это ключевое слово, вот этот символ".
В приведенном фрагменте функция CloseAllPositions() просто перебирает позиции, совершенно ничего с ними не делая.
Ты, когда пишешь строки кода (все равно, сам или копируешь откуда-то) должен понимать, зачем нужен КАЖДЫЙ символ, который ты написал. Простое "механическое" копирование до добра не доведет.
При копировании - всегда надо спрашивать себя - "зачем тут вот эта конструкция, вот это ключевое слово, вот этот символ".
В приведенном фрагменте функция CloseAllPositions() просто перебирает позиции, совершенно ничего с ними не делая.
Можно разместить в CodeBase
//+------------------------------------------------------------------+//| Test EA.mq5 |//+------------------------------------------------------------------+#property version"1.000"//---#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\Trade.mqh>
CAccountInfo m_account; // account info wrapper
CSymbolInfo m_symbol;
CTrade m_trade;
CPositionInfo m_position; // trading object //--- input parametersinputdouble InpStepEquity= 100; // Step equity//---double m_start_equity = 0.0;
inputulong m_magic = 0;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//---
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
if(CalculateAllPositions()==0)
m_start_equity=m_account.Equity();
if(m_account.Equity()>=m_start_equity+InpStepEquity)
{
CloseAllPositions();
return;
}
}
//+------------------------------------------------------------------+//| Close all positions |//+------------------------------------------------------------------+void CloseAllPositions()
{
for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positionsif(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
}
//+------------------------------------------------------------------+//| Calculate all positions |//+------------------------------------------------------------------+int CalculateAllPositions()
{
int total=0;
for(int i=PositionsTotal()-1;i>=0;i--)
if(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()==Symbol() && m_position.Magic()==m_magic)
total++;
//---return(total);
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Ты, когда пишешь строки кода (все равно, сам или копируешь откуда-то) должен понимать, зачем нужен КАЖДЫЙ символ, который ты написал. Простое "механическое" копирование до добра не доведет.
При копировании - всегда надо спрашивать себя - "зачем тут вот эта конструкция, вот это ключевое слово, вот этот символ".
Например в коде Close all positions есть одна из функций. Если поискать по моим кодам, то обнаружится и вторая функция.
Похоже на правду?
Похоже на правду?
Уникальный идентификатор эксперта должен быть ulong. Пример:
И с функцией CloseAllPositions намудрили.
Пример CloseAllPositions есть тут: GalacticExplosion.
Похоже на правду?
Ты, когда пишешь строки кода (все равно, сам или копируешь откуда-то) должен понимать, зачем нужен КАЖДЫЙ символ, который ты написал. Простое "механическое" копирование до добра не доведет.
При копировании - всегда надо спрашивать себя - "зачем тут вот эта конструкция, вот это ключевое слово, вот этот символ".
В приведенном фрагменте функция CloseAllPositions() просто перебирает позиции, совершенно ничего с ними не делая.
Ты, когда пишешь строки кода (все равно, сам или копируешь откуда-то) должен понимать, зачем нужен КАЖДЫЙ символ, который ты написал. Простое "механическое" копирование до добра не доведет.
При копировании - всегда надо спрашивать себя - "зачем тут вот эта конструкция, вот это ключевое слово, вот этот символ".
В приведенном фрагменте функция CloseAllPositions() просто перебирает позиции, совершенно ничего с ними не делая.
Ты, когда пишешь строки кода (все равно, сам или копируешь откуда-то) должен понимать, зачем нужен КАЖДЫЙ символ, который ты написал. Простое "механическое" копирование до добра не доведет.
При копировании - всегда надо спрашивать себя - "зачем тут вот эта конструкция, вот это ключевое слово, вот этот символ".
В приведенном фрагменте функция CloseAllPositions() просто перебирает позиции, совершенно ничего с ними не делая.
Можно разместить в CodeBase
в таком виде?
Можно разместить в CodeBase
в таком виде?
А Вы компилировать пробовали?
А где оформленная шапка?
Пример шапки:
Можно разместить в CodeBase
в таком виде?
Зачем ?
Ты считаешь, что это очень нужный код ?
Написал, отлично, теперь используй его !
А в Кодобазе имеет смысл размещать что-то новое, особенное, чего не было раньше.
А Вы компилировать пробовали?
А где оформленная шапка?
Пример шапки:
Да, шапку обязательно сделаю
Зачем ?
Ты считаешь, что это очень нужный код ?
Написал, отлично, теперь используй его !
А в Кодобазе имеет смысл размещать что-то новое, особенное, чего не было раньше.
Ну по-моему вполне нужная вещь. По профиту много закрывашек, а по Эквити не очень, да еще и с шагом...
Ну по-моему вполне нужная вещь. По профиту много закрывашек, а по Эквити не очень, да еще и с шагом...
Код работать не будет. Выше правильно советовали:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Подправить код новичку
Georgiy Merts, 2018.12.17 14:20
Ты, когда пишешь строки кода (все равно, сам или копируешь откуда-то) должен понимать, зачем нужен КАЖДЫЙ символ, который ты написал. Простое "механическое" копирование до добра не доведет.
При копировании - всегда надо спрашивать себя - "зачем тут вот эта конструкция, вот это ключевое слово, вот этот символ".
***
Изучайте первоисточники. Думайте.