私は作家になることを決意しました。MQL4 で何か書きたいと思い、何かで読んでExpert Advisorを書くことにしました。RSI with period 8が70を越えたらポジションをオープンし、 が30を越えたらポジションをクローズし、それ以外何も起こらないというものです。書きました。以下はそのコードです。
p.の質問について、/non-intrusively/;-)) 思い出していただきたいのです。64 MA の取引条件について...お先に失礼します
int start(){//----double MA_0=iMA(NULL,0, pMA, pSh, mode, price,0);double MA_1=iMA(NULL,0, pMA, pSh, mode, price,1);
перед использованием в коде open_1 или open_0 их нужно инициализировать, т. е. объяснить программе
к виду каких данных эти опены относятся( целые, дробные, строчные, логические)double open_0=Open[0];// double - дробное число. 0 и 1 это номера ячееек,double open_1=Open[1];// которые в данном случае являются номерами баровif( MA_1<Open[1]&& MA_0>Open[0])if( CheckOrders(OP_SELL))//продажа{if(!OrderSend(Symbol(),OP_BUY, Lots,Ask,3,0,0,NULL, MagicNumber))Print("Не открыт ордер Buy. Ошибка №",GetLastError());}if( MA_1>Open[1]&& MA_0<Open[0])if( CheckOrders(OP_BUY))//покупка{if(!OrderSend(Symbol(),OP_SELL, Lots,Bid,3,0,0,NULL, MagicNumber))Print("Не открыт ордер Sell. Ошибка №",GetLastError());}//----return(0);}
みなさん、こんにちは。
私は作家になることを決意しました。MQL4 で何か書きたいと思い、何かで読んでExpert Advisorを書くことにしました。RSI with period 8が70を越えたらポジションをオープンし、 が30を越えたらポジションをクローズし、それ以外何も起こらないというものです。書きました。以下はそのコードです。
//+------------------------------------------------------------------+//| 4doc.mq4
//| アレックス
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"アレックス"
#プロパティリンク "http://www.metaquotes.net"
//---- 入力パラメータ
extern int PerRSI=8;
extern int intNamber=77771;
extern double Lots=1.0;
/+------------------------------------------------------------------+//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
イント
cnt=0とする。
のチケットを購入します。
の合計です。
二重
rsi_0, //値です。rsi_0電流
rsi_1; // 値。rsi_1 1本目
if (Bars<100)
{
Print("bars less than 100");
return(0)です。
}
rsi_0=iRSI(NULL,0, PerRSI,0,0); // 現在のバー
rsi_1=iRSI(NULL,0, PerRSI,0,1); // 現在のバー+1
total=OrdersTotal()。
if(total<1)
if(rsi_0 < rsi_1 && rsi_0 > 70) // ラインが70を超えたら
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "My RSI", MagicNamber,0,Green)を実行。
if(チケット>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice())
}
else Print("Error opening SELL order : ",GetLastError());
return(0)です。
}
for(cnt=0;cnt<total;cnt++)
{
RefreshRates()。
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // これはオープンポジションですか?OP_BUYまたはOP_SELL
OrderSymbol()==Symbol()) // ツールマッチ?
{
if(OrderType()==OP_SELL) // ポジションはオープンです。
{
if(rsi_0 > rsi_1 && rsi_0 < 30) // ラインが30を超えたら
{
オーダークローズ(オーダーチケット(),オーダーロット(),アスク,3,バイオレット); // クローズポジション
return(0); // 終了
}}}}}
テストしてみましたが、ほぼ 思ったとおりに動きます。SSI - 14 がレベル100を超えたらポジションをオープンし、 がレベル100を超えたらポジションを クローズするようにコードを変更することにした。RSI のコードをCCI に変更しましたので、ご紹介します。
//+------------------------------------------------------------------+//| CCI-DOC.mq4について
//| アレックス
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "アレックス"
#プロパティリンク "http://www.metaquotes.net"
//---- 入力パラメータ
extern int PerCCI=14;
extern inttern MagicNamber=88881;
extern double Lots=1.0;
//+------------------------------------------------------------------+//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
イント
cnt=0とする。
のチケットを購入します。
の合計です。
二重
cci_0, // cci_0 の値。cci_0電流
cci_1; // cci_1 の値。cci_1 1st bar
if (Bars<100)
{
Print("bars less than 100");
return(0)です。
}
cci_0=iRSI(NULL,0, PerCCI,0,0); // 現在のバー
cci_1=iRSI(NULL,0, PerCCI,0,1); // 現在のバー+1
total=OrdersTotal()。
if(total<1)
if(cci_0 < cci_1 && cci_0 > 100) // if(line has crossed 100)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "My CCI", MagicNamber,0,Green)。
if(チケット>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice())
}
else Print("Error opening SELL order : ",GetLastError());
return(0)です。
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES)です。
if(OrderType()<=OP_SELL && // これはオープンポジションですか?OP_BUYまたはOP_SELL
OrderSymbol()==Symbol()) // ツールマッチ?
{
if(OrderType()==OP_SELL) // ポジションはオープンです。
{
if(cci_0 > cci_1 && cci_0 < -100) // 線が-100を超えたら
{
オーダークローズ(オーダーチケット(),オーダーロット(),アスク,3,バイオレット); // クローズポジション
return(0); // 終了
}}}}}
CCIを テストし始めた ...... まあ、何も起こりません、売ったり買ったりしない、ログにエラーがない、テストの終わりに曲線チャートを開きますが、それはCCIではなく、期間14とRSI 70から30です.......もしかしたら、経験豊富なライターの誰かが理解して、その理由と修正方法を教えてくれるかもしれません。
それから、ログのデモでは、すべてがより明確に示されています。どこを見ればエラーが出るのかが明確になった。自分一人で...
>> ありがとうございました
またまたこんにちは!!!!!!!!!!
p.の質問について、/non-intrusively/;-)) 思い出していただきたいのです。64 MA の取引条件について...お先に失礼します
皆さん、ターミナルで同じ取引商品の複数の異なるタイムチャートを使用する場合、教えてください。
トラフィックはどのように消費されるのですか?最小限の時間枠のトラフィックを消費するのか、それともすべての時間枠のトラフィックを消費するのか?
またまたこんにちは!!!!!!!!!!
p.の質問について、/non-intrusively/;-)) 思い出していただきたいのです。64 MA の取引条件について...お先に失礼します
返信ありがとうございます!!!
1.ダブルオープン_0とダブル_1の2行は、ダブルMAの行の前に書く必要があるのか、それとも無批判なのか、はっきりさせてください......。
2.取引条件のopen[0,1]をopen_0,1に置き換えると............?
返信ありがとうございます!!!
1.ダブルオープン_0とダブル_1の2行は、ダブルMAの行の前に書く必要があるのか、それとも無批判なのか、はっきりさせてください......。
2.open[0,1]をopen_0,1に置き換えると............?
1.重要でない。
2.できる
助けてください...私は怠惰かもしれませんが、デモや実際の口座で取引するためにプログラムを 接続する方法がわかりません......どこをどう書けばいいのか、どこをどう歌えばいいのか、お願いだから説明してください...。よろしくお願いします!))
1. クリティカルではない
2.できる
CGFCB<J すなわちTHANK YOU!!!!