コーディングの方法は? - ページ 109 1...102103104105106107108109110111112113114115116...347 新しいコメント RonaldRaygun 2008.07.07 14:16 #1081 複数取引の管理 皆さん、こんにちは。 私は、理論的には無限の取引を行うことができ、各取引のために管理するEAを開発しようとしています。 トレーリングストップ BEへの移動 ATR-トレイリングストップ などです。 swiss armyやmanageTPのようなEAがこれを行えることは知っています。方法がわかりません。 何か提案はありますか? rarango 2008.07.16 09:44 #1082 損失が発生した後に取引を停止するコードを書くのに助けが必要です。 こんにちは。 私は、エキスパートが1つの損失の後、または2つまたは3つの連続した損失の後に特定の時間数のために取引を停止するようにコードを記述する必要があります。 どなたか助けていただけませんか? jawas_ftsm 2008.07.21 02:00 #1083 マーチングルのヘッジを閉じた状態でのコード化 こんにちは、チーム。 私は以下の私の戦略のソリューションに私を提供することができますコードを求めていきたいと思います。 例 マーチングルのコンセプト TP = 23ピップ ピップギャップ = 20 OP買いEU 0.1,0.2,0.4,0.8,1.6ロット 1. もし1,6ロットのレイヤーが-20pips以上浮いたら、OPは12.8ロットでEUを売る(TP23)。 2. 12.8ロットがTPにヒットしたら、EUのポジションを全てクローズ。 3. 12.8lot pip=0の場合、Sell EUのポジションのみをクローズします。 4. 条件に該当する場合、1から3までの状況をもう一度繰り返す。 関数と コードについて私に助言するためにあなたの好意を必要としています。 削除済み 2008.07.22 19:05 #1084 コーディングの質問 今、このコードは、現在のオープニングが前のバーよりも高いかどうかを確認 することによって動作します。私の質問は、それが前のバーより高いか、または等しいかどうかを確認したい場合は、どのようにそれを変更するのですか? if(Open[0] > Open[0+1] && (Open[0+1] > Open[0+1] &&) Open[0+1] > Open[0+2] && (Open[0+2]> Open[0+3] &&) Open[0+2]> Open[0+3] && (Open[0+3] > Open[0+3] &&) Open[0+3]>Open[0+4] &&(英語)。 オープン[0+5] > オープン[0+6])注文 = SIGNAL_SELL このように、大なり記号の横に = > を付ければいいのでしょうか? ありがとうございます。 oneg 2008.07.22 19:25 #1085 を試してみてください。 if(Open[0] => Open[0+1] && Open[0+1] => Open[0+2] && Open[0+2]=> Open[0+3] && Open[0+3] => Open[0+4] && Open[0+4] => Open[0+5] && Open[0+5] => Open[0+6]) Order = SIGNAL_SELL cooltrader28yahoocom 2008.07.22 19:31 #1086 リバースエキスパートアドバイザーシグナル ハイ ちょうどこの専門家顧問のまわりで遊んでいる #property copyright "FORTRADER.RU" #property link "http://FORTRADER.RU" /* ????????? ???????? ?????????? ????????? ???????? ? ?????? ??????? ?? 26 ??? 2008, ??????????? ? ?????? ?? ????? ???? ?????? ? ????? ????????????: letters@fortrader.ru http://www.fortrader.ru/arhiv.php A detailed description of the parameters adviser available issue of the journal dated May 26 2008, suggestions and feedback we will be glad to see in our e-mail: letters@fortrader.ru http://www.fortrader.ru/arhiv.php */ extern string x="????????? MACD:"; extern int FastEMA = 12; extern int SlowEMA = 24; int SignalEMA = 9; extern int predel = 6; extern string x1="????????? MA:"; extern int SMA1 = 50; extern int SMA2 = 100; extern int otstup = 10; extern string x2="???????? ????? ??? ??????? ????-???? :"; extern int stoplossbars = 6; extern string x3="??????????? ??? ??????? ?????? ?????? ? ???????? ???????? ???????:"; extern int pprofitum = 2; extern string x4="?????? ?? ADX:"; extern int enable = 0; extern int periodADX = 14; extern double Lots=1; datetime Bar;int buy,sell,i,a,b;double stoploss,setup2,adx,okbuy,oksell; int start() { buy=0;sell=0; for( i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType()==OP_BUY){buy=1;} if(OrderType()==OP_SELL){sell=1;} } //????????? ?????????? double macd =iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,1); double sma1 =iMA(NULL,0,SMA1,0,MODE_SMA,PRICE_CLOSE,1); double sma2 =iMA(NULL,0,SMA2,0,MODE_SMA,PRICE_CLOSE,1); if(Close[1]<sma2){okbuy=1;} if(Close[1]>sma2){oksell=1;} if(enable==1) { adx=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0); }else{adx=60;} if(Close[1]+otstup*Point>sma1 && Close[1]+otstup*Point>sma2 && macd>0 && buy==0) { buy=0; for( i=predel;i>0;i--) { macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i); if(macd<0){buy=2;} } if(buy==2 && adx>50 && okbuy==1) {okbuy=0; double stoploss=Low; OrderSend(Symbol(),OP_BUY,Lots,Ask,3,stoploss,0,0,16385,0,Green); a=0; } } if(Close[1]-otstup*Point<sma1 && Close[1]-otstup*Point<sma2 && macd<0 && sell==0) { sell=0; for( i=predel;i>0;i--) { macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i); if(macd>0){sell=2;} } if(sell==2 && adx>50 && oksell==1) {oksell=0; stoploss=High; OrderSend(Symbol(),OP_SELL,Lots,Bid,3,stoploss,0,0,16385,0,White); b=0; } } if(buy==2 || buy==1) { for( i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType()==OP_BUY ) { double setup2=OrderOpenPrice()+((OrderOpenPrice()-OrderStopLoss())*pprofitum); if(Close[1]>setup2 && a==0) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White); OrderClose(OrderTicket(),OrderLots()/2,Bid,3,Violet); a=1; } if(a==1 && sma1> Close[1]-otstup*Point) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); } } } } if(sell==2 || sell==1) { for( i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType()==OP_SELL ) { setup2=OrderOpenPrice()-((OrderStopLoss()-OrderOpenPrice())*pprofitum); if(Close[1]<setup2 && b==0) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White); OrderClose(OrderTicket(),OrderLots()/2,Ask,3,Violet); b=1; } if(b==1 && Close[1]-otstup*Point> sma1) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); } } } } return(0); } どのように私は買い、売り注文を 逆にするのですか...カントはそれが動作するようになる How to code? [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 オジャラEA Linuxser 2008.07.22 19:52 #1087 OP_BUYをOP_SELLに逆変換するだけで、右のコードラインに逆方向のアクションが表示されます。 削除済み 2008.07.22 21:40 #1088 oneg: を試してみてください。 if(Open[0] => Open[0+1] && Open[0+1] => Open[0+2] && Open[0+2]=> Open[0+3] && Open[0+3] => Open[0+4] && Open[0+4] => Open[0+5] && Open[0+5] => Open[0+6]) Order = SIGNAL_SELL それはうまくいかなかったが、>記号の後に=記号を置くとうまくいった。こんな感じで。 if(Open[0] >= Open[0+1] && (Open[0+1] >= Open[0+2] && (Open[0+2] &&)) Open[0+1] >= Open[0+2] && (Open[0+2] >= Open[0+3] &&) Open[0+2]>= Open[0+3] && (Open[0+3] >= Open[0+3] &&) オープン[0+5] >= オープン[0+6])注文 = SIGNAL_SELL 削除済み 2008.07.23 10:32 #1089 このコードでは、トレーリングストップが45pipsに設定されています。しかし、トレーリングストップは45pips動くまで有効化されないようです。取引が行われたときにトレーリングストップが有効になるようにするには、どのように変更する必要がありますか? extern string Remark1 = "== Main Settings =="; extern int MagicNumber = 0; extern bool SignalMail = False; extern bool EachTickMode = true; extern double Lots = 4; extern int Slippage = 2; extern bool UseStopLoss = false; extern int StopLoss = 100; extern bool UseTakeProfit = false; extern int TakeProfit = 15; extern bool UseTrailingStop = true; extern int TrailingStop = 45; extern bool MoveStopOnce = False; extern int MoveStopWhenPrice = 50; extern int MoveStopTo = 1; extern int MaxConcurrentTrades = 2; //Version 2.01 int BarCount; int Current; bool TickCheck = False; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { BarCount = Bars; if (EachTickMode) Current = 0; else Current = 1; return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int Order = SIGNAL_NONE; int Total, Ticket; double StopLossLevel, TakeProfitLevel; if (EachTickMode && Bars != BarCount) TickCheck = False; Total = OrdersTotal(); Order = SIGNAL_NONE; //+------------------------------------------------------------------+ //| Variable Begin | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Variable End | //+------------------------------------------------------------------+ //Check position bool IsTrade = False; for (int i = 0; i < Total; i ++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { IsTrade = True; if(OrderType() == OP_BUY) { //Close //+------------------------------------------------------------------+ //| Signal Begin(Exit Buy) | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Signal End(Exit Buy) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //MoveOnce if(MoveStopOnce && MoveStopWhenPrice > 0) { if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) { if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red); if (!EachTickMode) BarCount = Bars; continue; } } } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if(Bid - OrderOpenPrice() > Point * TrailingStop) { if(OrderStopLoss() < Bid - Point * TrailingStop) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); if (!EachTickMode) BarCount = Bars; continue; } } } } else { //Close //+------------------------------------------------------------------+ //| Signal Begin(Exit Sell) | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Signal End(Exit Sell) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //MoveOnce if(MoveStopOnce && MoveStopWhenPrice > 0) { if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) { if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red); if (!EachTickMode) BarCount = Bars; continue; } } } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) { if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange); if (!EachTickMode) BarCount = Bars; continue; } } } } } } アスク! ICustom機能 基本的な質問 ... cooltrader28yahoocom 2008.07.23 15:58 #1090 リバースエキスパートアドバイザーの信号 1 Expert Advisorのいくつかのコードを変更するには、Skypeで誰もが私を助けることができる 私は非常に良いものを見つけた可能性があります。 私のスカイプは: ctzulu どうもありがとうございます 1...102103104105106107108109110111112113114115116...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
複数取引の管理
皆さん、こんにちは。
私は、理論的には無限の取引を行うことができ、各取引のために管理するEAを開発しようとしています。
swiss armyやmanageTPのようなEAがこれを行えることは知っています。方法がわかりません。
何か提案はありますか?
損失が発生した後に取引を停止するコードを書くのに助けが必要です。
こんにちは。
私は、エキスパートが1つの損失の後、または2つまたは3つの連続した損失の後に特定の時間数のために取引を停止するようにコードを記述する必要があります。
どなたか助けていただけませんか?
マーチングルのヘッジを閉じた状態でのコード化
こんにちは、チーム。
私は以下の私の戦略のソリューションに私を提供することができますコードを求めていきたいと思います。
例
マーチングルのコンセプト
TP = 23ピップ
ピップギャップ = 20
OP買いEU 0.1,0.2,0.4,0.8,1.6ロット
1. もし1,6ロットのレイヤーが-20pips以上浮いたら、OPは12.8ロットでEUを売る(TP23)。
2. 12.8ロットがTPにヒットしたら、EUのポジションを全てクローズ。
3. 12.8lot pip=0の場合、Sell EUのポジションのみをクローズします。
4. 条件に該当する場合、1から3までの状況をもう一度繰り返す。
関数と コードについて私に助言するためにあなたの好意を必要としています。
コーディングの質問
今、このコードは、現在のオープニングが前のバーよりも高いかどうかを確認 することによって動作します。私の質問は、それが前のバーより高いか、または等しいかどうかを確認したい場合は、どのようにそれを変更するのですか?
if(Open[0] > Open[0+1] && (Open[0+1] > Open[0+1] &&)
Open[0+1] > Open[0+2] && (Open[0+2]> Open[0+3] &&)
Open[0+2]> Open[0+3] && (Open[0+3] > Open[0+3] &&)
Open[0+3]>Open[0+4] &&(英語)。
オープン[0+5] > オープン[0+6])注文 = SIGNAL_SELL
このように、大なり記号の横に = > を付ければいいのでしょうか?
ありがとうございます。
を試してみてください。
if(Open[0] => Open[0+1] &&
Open[0+1] => Open[0+2] &&
Open[0+2]=> Open[0+3] &&
Open[0+3] => Open[0+4] &&
Open[0+4] => Open[0+5] &&
Open[0+5] => Open[0+6]) Order = SIGNAL_SELL
リバースエキスパートアドバイザーシグナル
ハイ
ちょうどこの専門家顧問のまわりで遊んでいる
#property link "http://FORTRADER.RU"
/*
????????? ???????? ?????????? ????????? ???????? ? ?????? ??????? ?? 26 ??? 2008,
??????????? ? ?????? ?? ????? ???? ?????? ? ????? ????????????: letters@fortrader.ru
http://www.fortrader.ru/arhiv.php
A detailed description of the parameters adviser available issue of the journal dated May 26 2008,
suggestions and feedback we will be glad to see in our e-mail: letters@fortrader.ru
http://www.fortrader.ru/arhiv.php
*/
extern string x="????????? MACD:";
extern int FastEMA = 12;
extern int SlowEMA = 24;
int SignalEMA = 9;
extern int predel = 6;
extern string x1="????????? MA:";
extern int SMA1 = 50;
extern int SMA2 = 100;
extern int otstup = 10;
extern string x2="???????? ????? ??? ??????? ????-???? :";
extern int stoplossbars = 6;
extern string x3="??????????? ??? ??????? ?????? ?????? ? ???????? ???????? ???????:";
extern int pprofitum = 2;
extern string x4="?????? ?? ADX:";
extern int enable = 0;
extern int periodADX = 14;
extern double Lots=1;
datetime Bar;int buy,sell,i,a,b;double stoploss,setup2,adx,okbuy,oksell;
int start()
{
buy=0;sell=0;
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY){buy=1;}
if(OrderType()==OP_SELL){sell=1;}
}
//????????? ??????????
double macd =iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,1);
double sma1 =iMA(NULL,0,SMA1,0,MODE_SMA,PRICE_CLOSE,1);
double sma2 =iMA(NULL,0,SMA2,0,MODE_SMA,PRICE_CLOSE,1);
if(Close[1]<sma2){okbuy=1;}
if(Close[1]>sma2){oksell=1;}
if(enable==1)
{
adx=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0);
}else{adx=60;}
if(Close[1]+otstup*Point>sma1 && Close[1]+otstup*Point>sma2 && macd>0 && buy==0)
{
buy=0;
for( i=predel;i>0;i--)
{
macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i);
if(macd<0){buy=2;}
}
if(buy==2 && adx>50 && okbuy==1)
{okbuy=0;
double stoploss=Low;
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,stoploss,0,0,16385,0,Green);
a=0;
}
}
if(Close[1]-otstup*Point<sma1 && Close[1]-otstup*Point<sma2 && macd<0 && sell==0)
{
sell=0;
for( i=predel;i>0;i--)
{
macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i);
if(macd>0){sell=2;}
}
if(sell==2 && adx>50 && oksell==1)
{oksell=0;
stoploss=High;
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,stoploss,0,0,16385,0,White);
b=0;
}
}
if(buy==2 || buy==1)
{
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY )
{
double setup2=OrderOpenPrice()+((OrderOpenPrice()-OrderStopLoss())*pprofitum);
if(Close[1]>setup2 && a==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White);
OrderClose(OrderTicket(),OrderLots()/2,Bid,3,Violet);
a=1;
}
if(a==1 && sma1> Close[1]-otstup*Point)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
}
}
}
}
if(sell==2 || sell==1)
{
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL )
{
setup2=OrderOpenPrice()-((OrderStopLoss()-OrderOpenPrice())*pprofitum);
if(Close[1]<setup2 && b==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White);
OrderClose(OrderTicket(),OrderLots()/2,Ask,3,Violet);
b=1;
}
if(b==1 && Close[1]-otstup*Point> sma1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
}
}
}
}
return(0);
}どのように私は買い、売り注文を 逆にするのですか...カントはそれが動作するようになる
OP_BUYをOP_SELLに逆変換するだけで、右のコードラインに逆方向のアクションが表示されます。
を試してみてください。
if(Open[0] => Open[0+1] &&
Open[0+1] => Open[0+2] &&
Open[0+2]=> Open[0+3] &&
Open[0+3] => Open[0+4] &&
Open[0+4] => Open[0+5] &&
Open[0+5] => Open[0+6]) Order = SIGNAL_SELL
それはうまくいかなかったが、>記号の後に=記号を置くとうまくいった。こんな感じで。
if(Open[0] >= Open[0+1] && (Open[0+1] >= Open[0+2] && (Open[0+2] &&))
Open[0+1] >= Open[0+2] && (Open[0+2] >= Open[0+3] &&)
Open[0+2]>= Open[0+3] && (Open[0+3] >= Open[0+3] &&)
オープン[0+5] >= オープン[0+6])注文 = SIGNAL_SELL
このコードでは、トレーリングストップが45pipsに設定されています。しかし、トレーリングストップは45pips動くまで有効化されないようです。取引が行われたときにトレーリングストップが有効になるようにするには、どのように変更する必要がありますか?
extern string Remark1 = "== Main Settings ==";
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = true;
extern double Lots = 4;
extern int Slippage = 2;
extern bool UseStopLoss = false;
extern int StopLoss = 100;
extern bool UseTakeProfit = false;
extern int TakeProfit = 15;
extern bool UseTrailingStop = true;
extern int TrailingStop = 45;
extern bool MoveStopOnce = False;
extern int MoveStopWhenPrice = 50;
extern int MoveStopTo = 1;
extern int MaxConcurrentTrades = 2;
//Version 2.01
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
リバースエキスパートアドバイザーの信号
1 Expert Advisorのいくつかのコードを変更するには、Skypeで誰もが私を助けることができる
私は非常に良いものを見つけた可能性があります。
私のスカイプは: ctzulu
どうもありがとうございます