Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет, Младен,
Вот что говорит цикл для тех отложенных ордеров, где Multi_Indic_00 - осциллятор, а Up_Prime_00 - уровень определения.
//+--------------------------------------------------------------------+
//---- Проверить и закрыть, если тип ордера лимитный и тренд изменился.
if(OrderType()==OP_BUYLIMIT)
if((( Multi_Indic_00 ) <= (Up_Prime_00 ))
{
_OrderDelete=OrderDelete(OrderTicket());
}
if(OrderType()==OP_SELLLIMIT)
if((( Multi_Indic_00 ) >= ( Down_Prime_00 ))
{
_OrderDelete=OrderDelete(OrderTicket());
}
//+--------------------------------------------------------------------+
Ну ничего особенного....
Счастливой торговли.
Искренне.
Tomcat98Tomcat98
Что я хотел бы увидеть, так это оператор цикла for(). Если у вас есть оператор for, подобный этому :
for (int i = 0; i < OrdersTotal(); i++)
то некоторые заказы будут пропущены, если за это время некоторые заказы были закрыты или удалены. С другой стороны, если цикл for() будет выглядеть следующим образом:
for (int i = OrdersTotal()-1; i >= 0; i--)
тогда он обработает все заказы.
Младен
Понятно:
Вот он для процесса закрытия:
"
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) continue;
"
Tomcat98
Mladen
Понятно:
Вот она для процесса закрытия:
"
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) continue;
"
Tomcat98Tomcat98
Измените цикл на
for(int i=OrdersTotal()-1;i>=0;i--)
и все должно быть в порядке
Младен,
Бинго!
Теперь он делает именно то, что мне нужно.
Большое спасибо за вашу помощь.
"Людям не важно, сколько вы знаете, пока они не узнают, насколько вам не все равно".
- Теодор Рузвельт
Искренне.
Tomcat98
Младен,
Бинго!
Теперь он делает именно то, что мне нужно.
Большое спасибо за вашу помощь.
"Людям не важно, сколько вы знаете, пока они не узнают, насколько вам не все равно".
- Теодор Рузвельт
Искренне.
Tomcat98Счастливого кодирования
Привет Младен, спасибо за все, теперь все работает хорошо...
Теперь я застрял с созданным индикатором, который не перезагружается, поэтому каждый раз, когда свеча закрывается, мне приходится перезагружать индикатор, не могли бы вы помочь мне исправить это? Вот часть кода (это трендовый индикатор, основанный на простой идее гэпов, спасибо:
#property copyright "Copyright © 2014 Daniel Luchinger"
#property link
#property strict
#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrLime
#property indicator_color2 clrRed
#property indicator_color3 clrMagenta
#property indicator_color4 clrCyan
#define BUY 1
#define SELL 2
double Buy[],
Sell[],
FirstBuy[],
FirstSell[];
int OnInit() {
SetIndexBuffer(0,FirstBuy);
SetIndexBuffer(1,FirstSell);
SetIndexBuffer(2,Buy);
SetIndexBuffer(3,Sell);
for(int i=0; i<4; i++) {
SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}
SetIndexArrow (0,233);
SetIndexArrow (1,234);
SetIndexArrow (2,233);
SetIndexArrow (3,234);
return(INIT_SUCCEEDED);}
void OnDeinit(const int reason) {}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
const double &open[], const double &high[], const double &low[],
const double &close[], const long &tick_volume[], const long &volume[],
const int &spread[]) {
static int lastSignal=0;
for(int i=MathMin(rates_total-prev_calculated, rates_total-1); i>=0; i--) {
FirstBuy=FirstSell=Buy=Sell=EMPTY_VALUE;
datetime when=Time;
if((High-Close)<0) {
if(lastSignal==SELL) {
FirstBuy=Close;
SoundAlert(when, "Buy");}
lastSignal=BUY;}
if((Low-Close)>0){
if(lastSignal==BUY) {
FirstSell=Close;
SoundAlert(when, "Sell");}
lastSignal=SELL;}
}
return(rates_total);}
void SoundAlert(datetime i, string dir) {
static datetime lastAlert=0;
if(lastAlert!=i) {
Alert(StringFormat("%s signal on %s at %s",dir,Symbol(),TimeToStr(i)));
Привет Младен, спасибо за все, теперь все работает хорошо...
теперь я застрял с созданным индикатором, который не перезагружается, поэтому каждый раз, когда свеча закрывается, мне приходится перезагружать индикатор, не могли бы вы помочь мне исправить это? Вот часть кода (это трендовый индикатор, основанный на простой идее гэпов, спасибо:
#property copyright "Copyright © 2014 Daniel Luchinger"
#property link
#property strict
#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrLime
#property indicator_color2 clrRed
#property indicator_color3 clrMagenta
#property indicator_color4 clrCyan
#define BUY 1
#define SELL 2
double Buy[],
Sell[],
FirstBuy[],
FirstSell[];
int OnInit() {
SetIndexBuffer(0,FirstBuy);
SetIndexBuffer(1,FirstSell);
SetIndexBuffer(2,Buy);
SetIndexBuffer(3,Sell);
for(int i=0; i<4; i++) {
SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}
SetIndexArrow (0,233);
SetIndexArrow (1,234);
SetIndexArrow (2,233);
SetIndexArrow (3,234);
return(INIT_SUCCEEDED);}
void OnDeinit(const int reason) {}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
const double &open[], const double &high[], const double &low[],
const double &close[], const long &tick_volume[], const long &volume[],
const int &spread[]) {
static int lastSignal=0;
for(int i=MathMin(rates_total-prev_calculated, rates_total-1); i>=0; i--) {
FirstBuy=FirstSell=Buy=Sell=EMPTY_VALUE;
datetime when=Time;
if((High-Close)<0) {
if(lastSignal==SELL) {
FirstBuy=Close;
SoundAlert(when, "Buy");}
lastSignal=BUY;}
if((Low-Close)>0){
if(lastSignal==BUY) {
FirstSell=Close;
SoundAlert(when, "Sell");}
lastSignal=SELL;}
}
return(rates_total);}
void SoundAlert(datetime i, string dir) {
static datetime lastAlert=0;
if(lastAlert!=i) {
Alert(StringFormat("%s signal on %s at %s",dir,Symbol(),TimeToStr(i)));
daniel1983
Попробуйте вот так:
#property link ""
#property strict
#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrLime
#property indicator_color2 clrRed
#property indicator_color3 clrMagenta
#property indicator_color4 clrCyan
#define BUY 1
#define SELL 2
double Buy[],
Sell[],
FirstBuy[],
FirstSell[];
int OnInit() {
SetIndexBuffer(0,FirstBuy);
SetIndexBuffer(1,FirstSell);
SetIndexBuffer(2,Buy);
SetIndexBuffer(3,Sell);
for(int i=0; i<4; i++) {
SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}
SetIndexArrow (0,233);
SetIndexArrow (1,234);
SetIndexArrow (2,233);
SetIndexArrow (3,234);
return(INIT_SUCCEEDED);}
void OnDeinit(const int reason) {}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
const double &open[], const double &high[], const double &low[],
const double &close[], const long &tick_volume[], const long &volume[],
const int &spread[]) {
static int lastSignal=0;
for(int i=MathMin(rates_total-prev_calculated, rates_total-2); i>=0; i--)
{
FirstBuy=FirstSell=Buy=Sell=EMPTY_VALUE;
datetime when=Time;
if((High-Close)<0) {
if(lastSignal==SELL) {
FirstBuy=Close;
SoundAlert(when,"Buy");}
lastSignal=BUY;}
if((Low-Close)>0){
if(lastSignal==BUY) {
FirstSell=Close;
SoundAlert(when,"Sell");}
lastSignal=SELL;}
}
return(rates_total);
}
void SoundAlert(datetime i, string dir) {
static datetime lastAlert=0;
if(lastAlert!=i) {
Alert(StringFormat("%s signal on %s at %s",dir,Symbol(),TimeToStr(i)));
}
}
Привет Младен, спасибо, но если написать код таким образом, то будут отсутствовать сигналы, пожалуйста, посмотрите, я сделал картинку, сравнивая их на дневном графике USDJPY:
Что это может быть?
Привет Mladen, спасибо, но написав код таким образом, есть недостающие сигналы, пожалуйста, посмотрите, я сделал картинку, сравнивая их на дневном графике USDJPY: Что это может быть?
daniel1983
В своем коде вы использовали будущие значения (эти :
High-Close
Low-Close
Я использовал Close - которое является обычным предыдущим значением. Измените его на но тогда оно будет перерисовываться
Уважаемые mrtools и mladen
Может ли кто-нибудь помочь? Tom Demark Moving Average является ключевым индикатором в моей стратегии, однако, сигнал тревоги был бы очень полезен, когда указывается новая полка; я был бы очень признателен, если бы сигнал тревоги был закодирован в индикаторе. С нетерпением жду вашей любезной помощи.
Большое спасибо