//+------------------------------------------------------------------+//| RSI_strategy_cyxstudio.mq4 |//| Copyright 2013, Tjipke de Vries |//| https://forum.mql4.com/53695/ |//+------------------------------------------------------------------+#property copyright "Copyright 2013, MetaQuotes Software Corp."#property link "http://www.metaquotes.net"externint RSIPeriod = 3; //number of periods for RSI//WHY DIDN't YOU LEAVE THIS VALUE 3 externdouble UpperBound = 90; //set upper bound value for RSI//WHY DID YOU MAKE THIS TO 95externdouble LowerBound = 5; //set lower bound value for RSIexternint MASlowPeriod = 200;
externint MAFastPeriod = 5;
externdouble Lots = 0.1;
externdouble StopLoss = 60; //Set the stop loss levelexterndouble TakeProfit = 120; //Set the take profit levelexterndouble TrailingStop = 40;
//extra settings for OrderSendexternint MagicNumber = 54333;
externstring CommentEA = "RSI strategy";
externint Slippage.Pips = 3;
int BUYS=1,SELLS=1; //WHY DID YOU REMOVE THIS FROM YOUR CODE//++++ These are adjusted for 5 digit brokers.int pips2points; // slippage 3 pips 3=points 30=pointsdouble pips2dbl; // Stoploss 15 pips 0.015 0.0150intDigits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips)//---//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
//---- if(Digits % 2 == 1) // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262
{pips2dbl = Point*10; pips2points = 10; Digits.pips = 1;}
else {pips2dbl = Point; pips2points = 1; Digits.pips = 0;}
// OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl //WHY DID YOU REMOVE THIS //---- //?? Alert(OrdersTotal()); //WHAT IS THIS DOING HERE THIS IS NOT IN MY CODE//----return(0);
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----//----return(0);
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
//----int Ticket;
double SL,TP;
int Total;
double pAsk = MarketInfo(Symbol(), MODE_ASK);
double pBid = MarketInfo(Symbol(), MODE_BID);
double MA200 = iMA(NULL, 1440, MASlowPeriod, 0,MODE_SMA,PRICE_CLOSE, 0); //200 day Moving Average double MA5 = iMA(NULL, 1440, MAFastPeriod, 0,MODE_SMA,PRICE_CLOSE, 0); // 5 day Moving Averagedouble CurrentRSI = iRSI (NULL, 1440, RSIPeriod,PRICE_CLOSE ,0);
//WHY DID YOU MAKE PrevRSI and LastRSI REMOVE IT IT IS NOT IN MY CODE
if(Bars<100)
{
Print("bars less than 100");
return(0);
}
if(AccountFreeMargin()<(1000*Lots))
{
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if(OrdersTotal()<1) // WHY DID YOU REMOVE THIS
{
BUYS=0;
SELLS=0;
}
これは私の最新のコードです。私が望む結果を得られない以外は、何も間違っていないと思います。
このトピックの2ページ目をご覧いただくと、私がお渡ししたものが掲載されています。
これが始まりです......。
自分のコメント......今までと何が違うのか......を書いてください。
それから、https://www.mql5.com/en/forum/139654 を読んで、トレードをチェックするカウントダウンのループを作ってみてください。
あなたが見ることができるように、私は取引をチェックするダウンカウントループを作るように頼んだ。
それはコードの中の私の次のステップです。
私はコードのその部分のためにあなたに尋ねる
買いトレードと売りトレードを別々にカウントしてください。
このトピックの2ページ目をご覧いただくと、私がお渡ししたものが掲載されています。
私はそれを使用する方法を知らなかったので、私はそれを削除しました。あなたは私にコードを与えたが、私はそれがどのように機能 するか見ることができませんでした。
--
これが始まりです......。
自分のコメント......今までと何が違うのか......を教えてください。
それから、https://www.mql5.com/en/forum/139654 を読んで、トレードをチェックするカウントダウンのループを作ってみてください。
ご覧の通り、トレードをチェックするカウントダウンのループを作るよう依頼しました。
それはコードの中の私の次のステップです。
私はコードのその部分のためにあなたに尋ねる
それは別々に買い取引と売り取引をカウントするようにします。
このように?
int ticket=OrderTicket();//実行するコードのブロック
}
私はそれを使用する方法を知らなかったので、それを削除しました。
EAが再スタートする瞬間
BUYSが1に設定されます。
売りが1に設定されます
OrdersTotal()は、あなたの口座のすべてのオープントレードの合計を表示します。
ゼロであれば未決済であり、このEAの取引があるかどうかを確認 する必要はありません。
OrdersTotal() > 0 BUYSは1を維持し、SELLSは1を維持 する場合
この場合、EAの取引かどうか確認する必要があり、異なるタイプ(買い、売り、買い限度...)を数える必要があります。
ということで
このように?
int ticket=OrderTicket();//実行するコードのブロック
}
SRCボタンを使用する
このループは開始するだけです(どのような条件のために)。
ループの中で選択されたトレードが買いか売りかどうやって知るのですか?
そして、どのようにそれらを数えるのですか?
SRCボタンを使用する
このループは開始するだけです(どのような条件のために)。
ループの中で選択されたトレードが買いか売りかどうやって知るのですか?
そして、どのようにそれらを数えるのですか?
ということです。
クローズド・トレードの関数に
を使って
if (OrderType() == OP_SELL && pBid < MA5)
を使って売買を区別しています。
注文を開始するための条件に何か問題がありますか?
それを削除して、決済機能で使用したループに置き換えるべきですか?
対戦相手
クローズド・トレードの機能に対して
売買の区別のため
を使い、売りと買いを区別する。
注文を開始するための条件に何か問題がありますか?
それを削除して、決済機能で使用したループに置き換える必要がありますか?
このとき、すでに取引が開始されているかどうかを確認 する必要があります。
取引を開始する前に、取引が開始されているかどうかを知る必要があります。
取引数をカウントしているのが見えません。
.
メタトレーダー・ステーションの 移動平均EAの コードを見て、それがどのように行われるかを見てください ....