Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Flytox: Я не могу найти такой код в моей копии TrendStrength.
Это TrendStrength v2.2
Пользовательский режим ценообразования
Кто-нибудь знает, как сделать пользовательский ценовой режим? Я использую следующее оповещение, чтобы сигнализировать, когда цена (extern int PriceMode = 6; //(high+low+close+close)/4) пересекает MA. Я хотел бы сделать его индивидуальным, добавив смещение, скажем, на 1 или 2 %. Возможно ли это? Что-то вроде:
extern int PriceMode = ((high+low+close+close)/4) * 1.01
----------------------------------------------------
#property indicator_chart_window
extern int MA1.period =5; //Период 5
extern int MA1.shift=0;
extern int MA1.method=2; //SMMA
extern int lMA1.price=2; //MA устанавливается на максимум свечи
extern int sMA1.price=3; //MA устанавливается на низкую свечу
extern int PriceMode = 6; //(high+low+close+close)/4
int cBar,pBarLong,pBarShort;
int start()
{
cBar = Time[0];
if(CheckMACross(1)== 1 && cBar!=pBarLong ) {EmailAlert(1); pBarLong=cBar;}
else
if(CheckMACross(2)==-1 && cBar!=pBarShort) {EmailAlert(2); pBarShort=cBar;}
return(0);
}
int CheckMACross(int mode)
{
if(mode==1) int price = lMA1.price;
else
if(mode==2) price = sMA1.price;
double price1 = iMA(Symbol(),0,1,0,1,PriceMode,1);
double ma1 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.method, price,1);
double price0 = iMA(Symbol(),0,1,0,1,PriceMode,0);
double ma0 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.method, price,0);
if(ma1 > price1 && ma0 <= price0) return( 1);
иначе
if(ma1 = price0) return(-1);
else
return(0);
}
{
if(mode == 1) SendMail("Signal for LONG",Symbol()+" Go Long"); //SendMail
else
if(mode == 2) SendMail("Signal for SHORT",Symbol()+" Go Short");//SendMail
}
int lastBAlert = 0;
int lastSAlert = 0;
void EmailAlert(int mode)
{
if(mode == 2 && lastSAlert < Time[0] )
{
SendMail("Go Short 1",Symbol()+" Go Short 1"); //SendMail
lastSAlert = Time[0];
}
}
Я обращаюсь к экспертам, пожалуйста, придите мне на помощь, мне нужно, чтобы некоторые из них помогли мне создать EXPERT ADVISER META 4 TRADER для меня, я буду очень рад, если моя просьба будет удовлетворена.
Миллионы способов создать эксперта, о каком способе вы подумали?
помощь с исходным кодом!
Привет всем
У меня есть советник и я хочу добавить в него вход
Если тейк-профит >= :xx, купить лот :xx
extern int Deltaopen1 =100;
Я написал;
if (type == OP_BUY)
{
if (M2.BuyCnt == 0 && OrderTakeProfit() > OrderOpenPrice() + Deltaopen1*point)
{
Buy(Symbol(), GetLots2(), Ask, 0, 0, 0, Magic2);
return;
}
}
if (type == OP_SELL)
{
if (M2.SellCnt == 0 && OrderTakeProfit() <= OrderOpenPrice() - Deltaopen1*point)
{
Sell(Symbol(), GetLots2(), Bid, 0, 0, 0, Magic2);
return;
}
}
}
Но это не работает,
буду благодарен за любую помощь.
Спасибо
Нужна помощь в доработке советника
У меня есть этот советник, который является модифицированной версией "GAPS EA", найденной в другом месте на этом форуме.
В любом случае, прилагается копия кода.
#property link ""
//---- input parameters
extern int min_gapsize = 1;
extern double lotsize_gap = 5;
extern int MagicNumber = 10;
//----
datetime order_time = 0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
/*
Thing to be done in future in this program to make it more efficient
and more powerful:
1. Make the dicission of the quantity of lots used according to
the scillators;
2. This program will catch the gaps.
Things to ware of:
1. the spread;
2. excuting the order not on the gap ends a little bit less.
*/
// Defining the variables to decide.
Print("order time", order_time);
double current_openprice = iOpen(Symbol(), 0, 0);
double previous_highprice = iHigh(Symbol(), 0, 1);
double previous_lowprice = iLow(Symbol(), 0, 1);
double point_gap = MarketInfo(Symbol(), MODE_POINT);
int spread_gap = MarketInfo(Symbol(), MODE_SPREAD)+1;
datetime current_time = iTime(Symbol(), 0, 0);
// catching the gap on sell upper gap
if(current_openprice > previous_highprice + (min_gapsize + spread_gap)*point_gap &&
current_time != order_time)
{
int ticket = OrderSend(Symbol(), OP_SELL, lotsize_gap, Bid, 0, 0,
previous_highprice + spread_gap,
"Gapped Up Sell " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Red);
order_time = iTime(Symbol(), 0, 0);
Print("I am inside (sell) :-)", order_time);
//----
if(ticket < 0)
{
Print("OrderSend failed with error #", GetLastError());
}
}
//catching the gap on buy down gap
if(current_openprice < previous_lowprice - (min_gapsize + spread_gap)*point_gap &&
current_time != order_time)
{
ticket = OrderSend(Symbol(), OP_BUY, lotsize_gap, Ask, 0, 0,
previous_lowprice - spread_gap,
"Gapped Down Buy " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Green);
order_time = iTime(Symbol(), 0, 0);
Print("I am inside (buy) :-)", order_time);
if(ticket < 0)
{
Print("OrderSend failed with error #", GetLastError());
}
}
//----
return(0);
}
//+------------------------------------------------------------------+Всякий раз, когда я ввожу его в тестер стратегий, он не открывает сделки. Быстрый взгляд на журнал говорит мне, что было сделано много ордеров. Что я сделал не так?
Помогите: Базовый вопрос по гистограмме
Возможно, это очень просто и я что-то упускаю, но у меня закончились ресурсы и я не могу найти ответ.
Все, что я пытаюсь сделать, это вспомнить значение ранее нарисованной полосы гистограммы.
Есть идеи?
Т.е. Close[1] показывает последний закрытый бар на графике......
Что же будет показывать последний нарисованный бар гистограммы на этом индикаторе в отдельном окне?
Заранее спасибо за любой совет.
-dharsant
Возможно, это действительно просто и я что-то упускаю, но у меня закончились ресурсы и я не могу найти ответ.
Все, что я пытаюсь сделать, это вызвать значение ранее нарисованной полосы гистограммы.
Есть идеи?
Т.е. Close[1] показывает последний закрытый бар на графике......
Что же будет показывать последний нарисованный бар гистограммы в этом отдельном окне индикатора?
Заранее спасибо за любой совет.
-dharsantКакой индикатор вы вызываете? Просто установите сдвиг для вызова предыдущего бара.
Пример, для скользящей средней на текущем баре:
iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,0);
Для скользящей средней предыдущего бара:
iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,1);
Последний параметр при вызове индикатора указывает, сколько баров от текущего будет считано.
Надеюсь, это то, что вы искали.
Нужна помощь в кодировании, пожалуйста
Я пытаюсь использовать пару различных индикаторов в ea, но не могу понять, как внедрить их в систему. Какую часть индикатора я должен использовать, чтобы сказать, покупать или продавать. Как сделать так, чтобы линия направления наклона стала частью советника.
Спасибо
Бено
Возможно, я не совсем правильно объяснил.
Я пытаюсь выяснить, что мне нужно поместить в iCustom, вот что я сделал ниже.
double SDL=iCustom(NULL,0, "Slope Direction Line",period,method,price)
И что мне нужно сделать, чтобы генерировать сигналы на покупку и продажу от индикатора Slope Direction Line для моего эксперта. Ниже то, что я сделал на данный момент, он компилируется, но позиции не генерируются.
bool Long = TML && SDL && HeikenAshiOpen < HeikenAshiClose && hasOpen < hasClose;
bool Short = TMS && SDL && HeikenAshiOpen > HeikenAshiClose && hasOpen > hasClose;
Любая помощь будет замечательной
Спасибо
Бено
Во-первых, вызов iCustom требует двух дополнительных аргументов в конце, а именно: из какого из индикаторных буферов читать, и по какому индексу читать.
Во-вторых, "SDL" - это двойное число, поэтому простое указание "SDL" в качестве условия показывает некоторую путаницу; возможно, оно компилируется как "SDL != 0", и, возможно, именно это и имеется в виду.