MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 61 1...545556575859606162636465666768...1953 新しいコメント RichLux 2017.01.08 19:54 #601 if(OrderBuy<1&& rsi>Urov_70 && rsi1<Urov_70){ tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,slippage,sl,tp,NULL,MagicNumber,0,clrBlue);}}.if(OrderSell<1&& rsi<Urov_30 && rsi1>Urov_30){ tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,slippage,sl,tp,NULL,MagicNumber,0,clrRed);}}.が必要です。if(OrderBuy<1&& rsi>Urov_70 && rsi1<Urov_70){ tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,slippage,slBuy,tpBuy,NULL,MagicNumber,0,clrBlue);}}.if(OrderSell<1&& rsi<Urov_30 && rsi1>Urov_30){ tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,slippage,slSell,tpSell,NULL,MagicNumber,0,clrRed);}}. Artyom Trishkin 2017.01.08 20:05 #602 Ibragim Dzhanaev:役に立たなかった(double tp,sl,OrderBuy=0,OrderSell=0;double slSell,slBuy,tpSell,tpBuy; int tiket;//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit() { return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason) { }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick() { for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if(OrderSymbol()==_Symbol && OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_BUY){} if(OrderType()==OP_SELL){} } } double rsi=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,0); double rsi1=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,1);//+------------------------------------------------------------------+ double StopLossLevel; double TakeProfitLevel; if(StopLoss>0) StopLossLevel=Bid-StopLoss*Point; else StopLossLevel=0.0; if(TakeProfit>0) TakeProfitLevel=Ask+TakeProfit*Point; else TakeProfitLevel=0.0; tpBuy=NormalizeDouble(Ask+TakeProfit*_Point,_Digits); slBuy=NormalizeDouble(Bid-StopLoss*_Point,_Digits); tpSell=NormalizeDouble(Bid-TakeProfit*_Point,_Digits); slSell=NormalizeDouble(Ask+StopLoss*_Point,_Digits);///--- if(OrderBuy<1 && rsi>Urov_70 && rsi1<Urov_70) { tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,slippage,sl,tp,NULL,MagicNumber,0,clrBlue); } if(OrderSell<1 && rsi<Urov_30 && rsi1>Urov_30) { tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,slippage,sl,tp,NULL,MagicNumber,0,clrRed); } }//+------------------------------------------------------------------+そんなコードで何がしたいんだ?何が、どううまくいかなかったのでしょうか? 削除済み 2017.01.08 20:08 #603 RichLux:if(OrderBuy<1&& rsi>Urov_70 && rsi1<Urov_70){tiket=OrderSend(_Symbol、OP_BUY、Lot、Ask、sl、tp、NULL、MagicNumber、0、clrBlue)}if(OrderSell<1&& rsi<Urov_30 && rsi1>Urov_30){tiket=OrderSend(_Symbol、OP_SELL、Lot、Bid、sl、tp、NULL、MagicNumber、0、clrRed)を実行。}けど、必要if(OrderBuy<1&& rsi>Urov_70 && rsi1<Urov_70){tiket=OrderSend(_Symbol、OP_BUY、Lot、Ask、slippage、slBuy、tpBuy、NULL、MagicNumber、0、clrBlue)。}if(OrderSell<1&& rsi<Urov_30 && rsi1>Urov_30){tiket=OrderSend(_Symbol、OP_SELL、Lot、Bid、slimage、slSell、tpSell、NULL、MagicNumber、0、clrRed);}ティックごとに 開く(double tp,sl,OrderBuy=0,OrderSell=0;double slSell,slBuy,tpSell,tpBuy; int tiket;//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit() { return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason) { }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick() { for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if(OrderSymbol()==_Symbol && OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_BUY){} if(OrderType()==OP_SELL){} } } double rsi=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,0); double rsi1=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,1);//+------------------------------------------------------------------+ double StopLossLevel; double TakeProfitLevel; if(StopLoss>0) StopLossLevel=Bid-StopLoss*Point; else StopLossLevel=0.0; if(TakeProfit>0) TakeProfitLevel=Ask+TakeProfit*Point; else TakeProfitLevel=0.0; tpBuy=NormalizeDouble(Ask+TakeProfit*_Point,_Digits); slBuy=NormalizeDouble(Bid-StopLoss*_Point,_Digits); tpSell=NormalizeDouble(Bid-TakeProfit*_Point,_Digits); slSell=NormalizeDouble(Ask+StopLoss*_Point,_Digits);///--- if(OrderBuy<1 && rsi>Urov_70 && rsi1<Urov_70) { tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,slippage,slBuy,tpBuy,NULL,MagicNumber,0,clrBlue); } if(OrderSell<1 && rsi<Urov_30 && rsi1>Urov_30) { tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,slippage,slSell,tpSell,NULL,MagicNumber,0,clrRed); } }//+------------------------------------------------------------------+ Any questions from newcomers 初心者の方からの質問 MQL4 MT4 MetaTrader [アーカイブ!】どんなエキスパートやインジケーターでも無料で書きます。 削除済み 2017.01.08 20:09 #604 Artyom Trishkin:ところで、このコードで何をしたいのですか?そこで何が、何がうまくいかなかったのか。コードのどこが悪いんだ?カチカチ 音がするたびに開かないようにする必要があります。 Artyom Trishkin 2017.01.08 20:13 #605 Ibragim Dzhanaev: コードのどこが悪いのですか?そういうわけにはいきません。何もせず、結果も何も返さないのに、なぜ位置ループを検索するのですか?なぜ、値がゼロの変数を1未満でチェックし、すべてのティックで 開かないことを期待しているのですか?正直言ってナンセンスな部分が多いのですが...。 Mickey Moose 2017.01.08 20:14 #606 同じ問題があります。テスターでは、すべてのクリックで 開くはずのないものが開いてしまいます。最低注文数で動作するように松葉杖をつけたが、パッチであり、それ以上ではない Artyom Trishkin 2017.01.08 20:16 #607 trader781:同じ問題があります。テスターでは、すべてのクリックで 開くはずのないものが開いてしまいます。最低注文数で動作するように松葉杖をつけたが、パッチであり、それ以上ではない オープンポジションの数を正しく数えることができれば、松葉杖は必要ないのです。 削除済み 2017.01.08 20:18 #608 Artyom Trishkin:すべて間違っている。 何もせず、結果も何も返さないのに、なぜ位置ループを検索するのですか?なぜ、値がゼロの変数を1未満でチェックし、すべてのティックで 開かないことを期待しているのですか?正直ナンセンスな部分も多いし...。正しい方法で修理する。 もしそうだったら、そうしていたかもしれない。 Mickey Moose 2017.01.08 20:20 #609 Artyom Trishkin: オープンポジションの数を正しくカウントすれば、松葉杖は必要ない。一切の制約を受けるべきではありません。要するに、以下のような条件です。void OnTick() { if(OrdersTotal()==0) //+-------------если количество ордеров равно 0 { if((MathAbs(ma2-ma4)>100*_Point) && (MathAbs(Bid-ma3)>100*Point()) && (ma31>ma32>ma33)) //+-----покупка по 6+50 { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,50,0,0,"",Magic,0,clrAzure);//+------отправка 1 ордера } if((Bid+1000*Point)>ma3 && (Bid>ma1) && (Bid>ma2))//+-------------условие продажи { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,50,0,0,"",Magic,0,clrAzure);//+-----отправка 1 ордера } if(ticket==0) { return; } } //+---------------------------------------------------------если уже есть if(FindLastOType()==OP_BUY) { if(Ask<=FindLastOrderOpenPrice()-Step*Point())//+------------если ордер в минус { ticket=OrderSend(Symbol(),OP_BUY,(FindLastLot()*Martin),Ask,50,0,0,"",Magic,0,clrAzure); } else if(Ask>=FindLastOrderOpenPrice()+Step*Point())//+------------если ордер в плюс { ticket=OrderSend(Symbol(),OP_BUY,(FindLastLot()*Martin),Ask,50,0,0,"",Magic,0,clrAzure); } } if(FindLastOType()==OP_SELL) { if(Bid>=FindLastOrderOpenPrice()+Step*Point())//+------------если ордер в минус { ticket=OrderSend(Symbol(),OP_SELL,(FindLastLot()*Martin),Bid,50,0,0,"",Magic,0,clrLightGray); } else if(Bid<=FindLastOrderOpenPrice()-Step*Point()) //+------------если ордер в плюс { ticket=OrderSend(Symbol(),OP_SELL,(FindLastLot()*Martin),Bid,50,0,0,"",Magic,0,clrLightGray); } } Trailingall(); } 2005桁、3桁という オープンステップを無視する必要はない。 Any questions from newcomers 初心者の方からの質問 MQL4 MT4 MetaTrader [アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. 削除済み 2017.01.08 20:25 #610 これを実行すると、すべてのティックで 開かず、シグナルを入れることができるようになりました...double tp,sl,OrderBuy=0,OrderSell=0;double slSell,slBuy,tpSell,tpBuy,TotalBiu,TotalSell; int tiket;//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit() { return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason) { }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick() { for(int i=OrdersTotal()-1; i>=0; i--) //Цикл по всем ордерам { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) //Выбрали ордер { if(OrderType()==OP_BUY) { TotalBiu++; //Кол. покупок } if(OrderType()==OP_SELL) { TotalSell++; //Кол. продаж } } } double rsi=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,0); double rsi1=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,1);//+------------------------------------------------------------------+ double StopLossLevel; double TakeProfitLevel; if(StopLoss>0) StopLossLevel=Bid-StopLoss*Point; else StopLossLevel=0.0; if(TakeProfit>0) TakeProfitLevel=Ask+TakeProfit*Point; else TakeProfitLevel=0.0; tpBuy=NormalizeDouble(Ask+TakeProfit*_Point,_Digits); slBuy=NormalizeDouble(Bid-StopLoss*_Point,_Digits); tpSell=NormalizeDouble(Bid-TakeProfit*_Point,_Digits); slSell=NormalizeDouble(Ask+StopLoss*_Point,_Digits);///--- if(TotalBiu==0) if(OrderBuy<1 && rsi>Urov_70 && rsi1<Urov_70) { tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,slippage,slBuy,tpBuy,NULL,MagicNumber,0,clrBlue); } if(TotalSell==0) if(OrderSell<1 && rsi<Urov_30 && rsi1>Urov_30) { tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,slippage,slSell,tpSell,NULL,MagicNumber,0,clrRed); } }//+------------------------------------------------------------------+ Any questions from newcomers [アーカイブ!】どんなエキスパートやインジケーターでも無料で書きます。 初心者の方からの質問 MQL4 MT4 MetaTrader 1...545556575859606162636465666768...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
if(OrderBuy<1&& rsi>Urov_70 && rsi1<Urov_70)
{
tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,slippage,sl,tp,NULL,MagicNumber,0,clrBlue);
}}.
if(OrderSell<1&& rsi<Urov_30 && rsi1>Urov_30)
{
tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,slippage,sl,tp,NULL,MagicNumber,0,clrRed);
}}.
が必要です。
if(OrderBuy<1&& rsi>Urov_70 && rsi1<Urov_70)
{
tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,slippage,slBuy,tpBuy,NULL,MagicNumber,0,clrBlue);
}}.
if(OrderSell<1&& rsi<Urov_30 && rsi1>Urov_30)
{
tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,slippage,slSell,tpSell,NULL,MagicNumber,0,clrRed);
}}.
役に立たなかった(
double slSell,slBuy,tpSell,tpBuy;
int tiket;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==_Symbol && OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY){}
if(OrderType()==OP_SELL){}
}
}
double rsi=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,0);
double rsi1=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,1);
//+------------------------------------------------------------------+
double StopLossLevel;
double TakeProfitLevel;
if(StopLoss>0) StopLossLevel=Bid-StopLoss*Point; else StopLossLevel=0.0;
if(TakeProfit>0) TakeProfitLevel=Ask+TakeProfit*Point; else TakeProfitLevel=0.0;
tpBuy=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);
slBuy=NormalizeDouble(Bid-StopLoss*_Point,_Digits);
tpSell=NormalizeDouble(Bid-TakeProfit*_Point,_Digits);
slSell=NormalizeDouble(Ask+StopLoss*_Point,_Digits);
///---
if(OrderBuy<1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,slippage,sl,tp,NULL,MagicNumber,0,clrBlue);
}
if(OrderSell<1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,slippage,sl,tp,NULL,MagicNumber,0,clrRed);
}
}
//+------------------------------------------------------------------+
そんなコードで何がしたいんだ?
何が、どううまくいかなかったのでしょうか?
if(OrderBuy<1&& rsi>Urov_70 && rsi1<Urov_70)
{
tiket=OrderSend(_Symbol、OP_BUY、Lot、Ask、sl、tp、NULL、MagicNumber、0、clrBlue)
}
if(OrderSell<1&& rsi<Urov_30 && rsi1>Urov_30)
{
tiket=OrderSend(_Symbol、OP_SELL、Lot、Bid、sl、tp、NULL、MagicNumber、0、clrRed)を実行。
}
けど、必要
if(OrderBuy<1&& rsi>Urov_70 && rsi1<Urov_70)
{
tiket=OrderSend(_Symbol、OP_BUY、Lot、Ask、slippage、slBuy、tpBuy、NULL、MagicNumber、0、clrBlue)。
}
if(OrderSell<1&& rsi<Urov_30 && rsi1>Urov_30)
{
tiket=OrderSend(_Symbol、OP_SELL、Lot、Bid、slimage、slSell、tpSell、NULL、MagicNumber、0、clrRed);
}
ティックごとに 開く(
double slSell,slBuy,tpSell,tpBuy;
int tiket;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==_Symbol && OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY){}
if(OrderType()==OP_SELL){}
}
}
double rsi=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,0);
double rsi1=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,1);
//+------------------------------------------------------------------+
double StopLossLevel;
double TakeProfitLevel;
if(StopLoss>0) StopLossLevel=Bid-StopLoss*Point; else StopLossLevel=0.0;
if(TakeProfit>0) TakeProfitLevel=Ask+TakeProfit*Point; else TakeProfitLevel=0.0;
tpBuy=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);
slBuy=NormalizeDouble(Bid-StopLoss*_Point,_Digits);
tpSell=NormalizeDouble(Bid-TakeProfit*_Point,_Digits);
slSell=NormalizeDouble(Ask+StopLoss*_Point,_Digits);
///---
if(OrderBuy<1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,slippage,slBuy,tpBuy,NULL,MagicNumber,0,clrBlue);
}
if(OrderSell<1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,slippage,slSell,tpSell,NULL,MagicNumber,0,clrRed);
}
}
//+------------------------------------------------------------------+
ところで、このコードで何をしたいのですか?
そこで何が、何がうまくいかなかったのか。
コードのどこが悪いんだ?
カチカチ 音がするたびに開かないようにする必要があります。
コードのどこが悪いのですか?
そういうわけにはいきません。![](https://c.mql5.com/3/114/pardon.gif)
何もせず、結果も何も返さないのに、なぜ位置ループを検索するのですか?
なぜ、値がゼロの変数を1未満でチェックし、すべてのティックで 開かないことを期待しているのですか?
正直言ってナンセンスな部分が多いのですが...。
同じ問題があります。テスターでは、すべてのクリックで 開くはずのないものが開いてしまいます。
最低注文数で動作するように松葉杖をつけたが、パッチであり、それ以上ではない
同じ問題があります。テスターでは、すべてのクリックで 開くはずのないものが開いてしまいます。
最低注文数で動作するように松葉杖をつけたが、パッチであり、それ以上ではない
すべて間違っている。
何もせず、結果も何も返さないのに、なぜ位置ループを検索するのですか?
なぜ、値がゼロの変数を1未満でチェックし、すべてのティックで 開かないことを期待しているのですか?
正直ナンセンスな部分も多いし...。
正しい方法で修理する。
もしそうだったら、そうしていたかもしれない。
オープンポジションの数を正しくカウントすれば、松葉杖は必要ない。
一切の制約を受けるべきではありません。
要するに、以下のような条件です。
void OnTick()
{
{
if((MathAbs(ma2-ma4)>100*_Point)
&& (MathAbs(Bid-ma3)>100*Point())
&& (ma31>ma32>ma33)) //+-----покупка по 6+50
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,50,0,0,"",Magic,0,clrAzure);//+------отправка 1 ордера
}
if((Bid+1000*Point)>ma3 && (Bid>ma1) && (Bid>ma2))//+-------------условие продажи
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,50,0,0,"",Magic,0,clrAzure);//+-----отправка 1 ордера
}
if(ticket==0)
{
return;
}
}
//+---------------------------------------------------------если уже есть
if(FindLastOType()==OP_BUY)
{
if(Ask<=FindLastOrderOpenPrice()-Step*Point())//+------------если ордер в минус
{
ticket=OrderSend(Symbol(),OP_BUY,(FindLastLot()*Martin),Ask,50,0,0,"",Magic,0,clrAzure);
}
else
if(Ask>=FindLastOrderOpenPrice()+Step*Point())//+------------если ордер в плюс
{
ticket=OrderSend(Symbol(),OP_BUY,(FindLastLot()*Martin),Ask,50,0,0,"",Magic,0,clrAzure);
}
}
if(FindLastOType()==OP_SELL)
{
if(Bid>=FindLastOrderOpenPrice()+Step*Point())//+------------если ордер в минус
{
ticket=OrderSend(Symbol(),OP_SELL,(FindLastLot()*Martin),Bid,50,0,0,"",Magic,0,clrLightGray);
}
else
if(Bid<=FindLastOrderOpenPrice()-Step*Point()) //+------------если ордер в плюс
{
ticket=OrderSend(Symbol(),OP_SELL,(FindLastLot()*Martin),Bid,50,0,0,"",Magic,0,clrLightGray);
}
}
Trailingall();
}
これを実行すると、すべてのティックで 開かず、シグナルを入れることができるようになりました...
double slSell,slBuy,tpSell,tpBuy,TotalBiu,TotalSell;
int tiket;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
for(int i=OrdersTotal()-1; i>=0; i--) //Цикл по всем ордерам
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) //Выбрали ордер
{
if(OrderType()==OP_BUY)
{
TotalBiu++; //Кол. покупок
}
if(OrderType()==OP_SELL)
{
TotalSell++; //Кол. продаж
}
}
}
double rsi=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,0);
double rsi1=iRSI(_Symbol,0,RSIperiod,PRICE_CLOSE,1);
//+------------------------------------------------------------------+
double StopLossLevel;
double TakeProfitLevel;
if(StopLoss>0) StopLossLevel=Bid-StopLoss*Point; else StopLossLevel=0.0;
if(TakeProfit>0) TakeProfitLevel=Ask+TakeProfit*Point; else TakeProfitLevel=0.0;
tpBuy=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);
slBuy=NormalizeDouble(Bid-StopLoss*_Point,_Digits);
tpSell=NormalizeDouble(Bid-TakeProfit*_Point,_Digits);
slSell=NormalizeDouble(Ask+StopLoss*_Point,_Digits);
///---
if(TotalBiu==0)
if(OrderBuy<1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,slippage,slBuy,tpBuy,NULL,MagicNumber,0,clrBlue);
}
if(TotalSell==0)
if(OrderSell<1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,slippage,slSell,tpSell,NULL,MagicNumber,0,clrRed);
}
}
//+------------------------------------------------------------------+