1. Условие открытия на покупку: если предшествующая свеча открылась и закрылась выше MAn(где n-период средней EMA), то открываем ордер на покупку с TP=A(A-величина TakeProfitа), SL=B(B-величина StopLossa) и лотом Lot1.
2. Условие открытия на продажу: если предшествующая свеча открылась и закрылась ниже MAn(где n-период средней EMA), то открываем ордер на продажу с TP=A(A-величина TakeProfitа), SL=B(B-величина StopLossa) и лотом Lot1.
3. Если сработал StopLoss, то следующий ордер открывается с лотом Lot2, если опять сработал StopLoss, то уже следующий ордер с лотом Lot3 и так 10 раз, т.е. (Lot1, Lot2, Lot3, Lot4, Lot5, Lot6, Lot7, Lot8, Lot9, Lot10)
В случае срабатывания TakeProfitа следующий ордер открывается опять с лотом Lot1
4. Выносные параметры будут соответственно:
Период EMA, TP, SL, Lot1, Lot2, Lot3, Lot4, Lot5, Lot6, Lot7, Lot8, Lot9, Lot10.
5. Конечно, если будет возможно и будет время у программиста, то в замен TakeProfitа, при достижения определенного количества пунктов прибыли K переносить StopLoss в безубыток и далее в плюс на величину K...вообщем тралить
Вообщем суть вот в чем.
1. Условие открытия на покупку: если предшествующая свеча открылась и закрылась выше MAn(где n-период средней EMA), то открываем ордер на покупку с TP=A(A-величина TakeProfitа), SL=B(B-величина StopLossa) и лотом Lot1.
2. Условие открытия на продажу: если предшествующая свеча открылась и закрылась ниже MAn(где n-период средней EMA), то открываем ордер на продажу с TP=A(A-величина TakeProfitа), SL=B(B-величина StopLossa) и лотом Lot1.
3. Если сработал StopLoss, то следующий ордер открывается с лотом Lot2, если опять сработал StopLoss, то уже следующий ордер с лотом Lot3 и так 10 раз, т.е. (Lot1, Lot2, Lot3, Lot4, Lot5, Lot6, Lot7, Lot8, Lot9, Lot10)
В случае срабатывания TakeProfitа следующий ордер открывается опять с лотом Lot1
4. Выносные параметры будут соответственно:
Период EMA, TP, SL, Lot1, Lot2, Lot3, Lot4, Lot5, Lot6, Lot7, Lot8, Lot9, Lot10.
5. Конечно, если будет возможно и будет время у программиста, то в замен TakeProfitа, при достижения определенного количества пунктов прибыли K переносить StopLoss в безубыток и далее в плюс на величину K...вообщем тралить
можно не стараться. стандартная схема - можно порыться в кодабазе - эта стратегия не работает - париться для удовлетворения любопытства топикстартера можно только платно
можно не стараться. стандартная схема - можно порыться в кодабазе - эта стратегия не работает - париться для удовлетворения любопытства топикстартера можно только платно
да. мартин с открыванием по тренду в надежде что таки отобьется убыток.
в приложении ТЗ, кто захочет.
платно 20 с без убытком 25 можно с тралом и хитрым увеличением лота по не перекрытому убытку суммарно за серию убыточных сделок 35
в личку
помогите пожалуйста с кодами для стохастика ... чтобы покупка была в пределах за 80 и за 20 по уровню ...
спасибо заранее
помогите пожалуйста с кодами для стохастика ... чтобы покупка была в пределах за 80 и за 20 по уровню ...
спасибо заранее
Примерно так:
if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0) > 80) покупка; if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0) < 20) продажа;Если для МТ5, там двумя строчками не обойдешься. Создаешь массив для хранения данных индикатора, потом создаешь хендл, потом копируешь данные индюка в массив. Потом сравниваешь данные массива со своим уровнем и совершаешь сделку. И все.
Примерно так:
Если для МТ5, там двумя строчками не обойдешься. Создаешь массив для хранения данных индикатора, потом создаешь хендл, потом копируешь данные индюка в массив. Потом сравниваешь данные массива со своим уровнем и совершаешь сделку. И все.не подскажешь как ваше можно вставить что бы оно работало
//+------------------------------------------------------------------+
//| 777.mq5 |
//| Copyright 2021, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Include |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\Signal\SignalStoch.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs |
//+------------------------------------------------------------------+
//--- inputs for expert
input string Expert_Title ="777"; // Document name
ulong Expert_MagicNumber =21346; //
bool Expert_EveryTick =false; //
//--- inputs for main signal
input int Signal_ThresholdOpen =10; // Signal threshold value to open [0...100]
input int Signal_ThresholdClose =10; // Signal threshold value to close [0...100]
input double Signal_PriceLevel =0.0; // Price level to execute a deal
input double Signal_StopLevel =2.0; // Stop Loss level (in points)
input double Signal_TakeLevel =3.0; // Take Profit level (in points)
input int Signal_Expiration =4; // Expiration of pending orders (in bars)
input int Signal_Stoch_PeriodK =5; // Stochastic(5,3,3,...) K-period
input int Signal_Stoch_PeriodD =3; // Stochastic(5,3,3,...) D-period
input int Signal_Stoch_PeriodSlow=3; // Stochastic(5,3,3,...) Period of slowing
input ENUM_STO_PRICE Signal_Stoch_Applied =STO_LOWHIGH; // Stochastic(5,3,3,...) Prices to apply to
input double Signal_Stoch_Weight =1.0; // Stochastic(5,3,3,...) Weight [0...1.0]
//--- inputs for money
input double Money_FixLot_Percent =10.0; // Percent
input double Money_FixLot_Lots =0.1; // Fixed volume
//+------------------------------------------------------------------+
//| Global expert object |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Initializing expert
if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
{
//--- failed
printf(__FUNCTION__+": error initializing expert");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Creating signal
CExpertSignal *signal=new CExpertSignal;
if(signal==NULL)
{
//--- failed
printf(__FUNCTION__+": error creating signal");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//---
ExtExpert.InitSignal(signal);
signal.ThresholdOpen(Signal_ThresholdOpen);
signal.ThresholdClose(Signal_ThresholdClose);
signal.PriceLevel(Signal_PriceLevel);
signal.StopLevel(Signal_StopLevel);
signal.TakeLevel(Signal_TakeLevel);
signal.Expiration(Signal_Expiration);
//--- Creating filter CSignalStoch
CSignalStoch *filter0=new CSignalStoch;
if(filter0==NULL)
{
//--- failed
printf(__FUNCTION__+": error creating filter0");
ExtExpert.Deinit();
return(INIT_FAILED);
}
signal.AddFilter(filter0);
//--- Set filter parameters
filter0.PeriodK(Signal_Stoch_PeriodK);
filter0.PeriodD(Signal_Stoch_PeriodD);
filter0.PeriodSlow(Signal_Stoch_PeriodSlow);
filter0.Applied(Signal_Stoch_Applied);
filter0.Weight(Signal_Stoch_Weight);
//--- Creation of trailing object
CTrailingNone *trailing=new CTrailingNone;
if(trailing==NULL)
{
//--- failed
printf(__FUNCTION__+": error creating trailing");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Add trailing to expert (will be deleted automatically))
if(!ExtExpert.InitTrailing(trailing))
{
//--- failed
printf(__FUNCTION__+": error initializing trailing");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Set trailing parameters
//--- Creation of money object
CMoneyFixedLot *money=new CMoneyFixedLot;
if(money==NULL)
{
//--- failed
printf(__FUNCTION__+": error creating money");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Add money to expert (will be deleted automatically))
if(!ExtExpert.InitMoney(money))
{
//--- failed
printf(__FUNCTION__+": error initializing money");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Set money parameters
money.Percent(Money_FixLot_Percent);
money.Lots(Money_FixLot_Lots);
//--- Check all trading objects parameters
if(!ExtExpert.ValidationSettings())
{
//--- failed
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Tuning of all necessary indicators
if(!ExtExpert.InitIndicators())
{
//--- failed
printf(__FUNCTION__+": error initializing indicators");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- ok
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Deinitialization function of the expert |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ExtExpert.Deinit();
}
//+------------------------------------------------------------------+
//| "Tick" event handler function |
//+------------------------------------------------------------------+
void OnTick()
{
ExtExpert.OnTick();
}
//+------------------------------------------------------------------+
//| "Trade" event handler function |
//+------------------------------------------------------------------+
void OnTrade()
{
ExtExpert.OnTrade();
}
//+------------------------------------------------------------------+
//| "Timer" event handler function |
//+------------------------------------------------------------------+
void OnTimer()
{
ExtExpert.OnTimer();
}
//+------------------------------------------------------------------+
- 2021.04.21
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Сам осилить не могу...
Не думаю, что он сложный по коду. Просто если кто может помочь отпишитесь. А то на других сайтах бросают только ссылки на платные ресурсы по этому поводу.
Заранее благодарен кто откликнется.