コーディングの方法は? - ページ 278

 

20日間バックテストして みたが、どうやら損をしそうだ。

1年間バックテストしてみます。

しかし、まず第一に、私は、外部文字列の開始と終了の値を変更するだけで時間を変更することができれば必要ですか?

 

また、私が気づいたのは、EAが1日に何度もトレードを行うことです。そこで、このMin-Max -/+ 5 pipsの範囲を最初にブレイクアウトしたときに1回だけトレードするようにEAに指示する必要があります。また、ストップロスだけでなくトレーリングストップも組み込まなければなりません。

また、数字についての質問です。ストップは30pips、テイクプロフィットは 50pipsにする必要があります。また、Magis = 123とはどういう意味でしょうか?

if(Bid<=(low-0.005)) 0.005 ここで50pipsではないのですか?

extern double stopLoss = 300.0ではありません

extern double takeProfit = 500. 0;

extern string Begin="02:00";

外部文字列End="10:00";

extern double distance = 80;

bool isECN = true;

bool cond = false;

bool cond2 = false;

double low;

double high;

extern double lots = 0.1;

int magic = 123;

int スリッページ = 1;

文字列コメント = "";

int ticket;

 
Avasys:
また、私が気づいたのは、EAが一日に何度もトレードを行うことです。そこで、このMin-Max -/+ 5 pipsの範囲を最初にブレイクアウトしたときに1回だけトレードするようにEAに指示する必要があります。また、ストップロスだけでなくトレーリングストップも組み込まなければなりません。

また、数字についての質問です。ストップは30pips、テイクプロフィットは50pipsが必要です。また、Magis = 123とはどういう意味でしょうか?

if(Bid<=(low-0.005)) 0.005 ここで50pipsではないのですか?

extern double stopLoss = 300.0 ではありません

extern double takeProfit = 500. 0;

extern string Begin="02:00";

外部文字列End="10:00";

extern double distance = 80;

bool isECN = true;

bool cond = false;

bool cond2 = false;

double low;

double high;

extern double lots = 0.1;

int magic = 123;

int スリッページ = 1;

string comment = "";

int ticketです。

[0.005の代わりに0.0005にするのが正しいです。300と500は、私が5桁のブローカーを使用しているため、それは30ピップスのように300ピップを意味します。

マジックナンバーについて、どのようなトレーリングストップが必要なのか教えてください。123 [/lang] がお気に召さないようでしたら、私はあなたのマジックを変更しましたので、ご覧ください。

ファイル:
simple_ea.mq4  4 kb
 
g.pociejewski:
[0.005の代わりに0.0005にするのが正しいです。300と500は、私が5桁のブローカーを使用しているため、300pipsを意味し、30pipsです。マジックナンバーについて、どのようなトレーリングストップが必要なのか教えてください。ご覧の通り、123 [/lang] がお気に召さないようでしたら、私はあなたのマジックを変更します。

ありがとうございます。

このEAは1日に1回しか取引しないので、1日に数回レベル抜けが発生しても、1回しか取引しないのでしょうか?

また、EURJPYについては、高額通貨であるため、同じ番号を使用するのか、それとも00を移動するのか?

また、ストップロス、テイクプロフィット、トレーリングストップの回数を変更することは可能でしょうか?

トレーリングストップについて。私は、利益が35ピップス上昇したら、トレーリングストップが利益を確定するために従わなければならないと考えています。

ということで、ここを変更したらどうでしょう。

extern double stopLoss =300.0; (私は4桁のブローカーを使っているので、これを修正すべきでしょうか?)

extern double takeProfit =500. 0;

extern string Begin="0:00"; (前日の22:00と当日の06:00の時間帯を作りたい場合はどうするか?)

extern string End="08:15"。

extern double distance = 60;

bool isECN = true;

bool cond = false;

bool cond2 = false;

double low;

double high;

extern double lots = 0.1;

int magic = 123;

int スリッページ = 1;

文字列コメント = "";

int ticket;

また、私はこれを変更する場合はどうなります

if(Bid<=(low-0.005))とします。

コードの機能には影響しないのでしょうか?

バックテストをしてみると、1日に数回トレードが実行されるような問題が発生しました。

 

再びこんにちは

GBPUSDのようなJPYより価値の低いペアでは距離は80であってはならないことがわかりました。

そしてまた、私は一つのことを理解することができませんでしたバックテストでは、EAが同じペアで1日に複数回取引したかのように記載されています。

では、EAがポジションを入力した場合、このポジションはその日1回だけでなければならないということはあり得るのでしょうか?

感謝

また、以下の意味は何でしょうか?

intslippage= 1;

文字列コメント= "";

int ticket;

また、EAにスクリプトを追加して、取引が実行されたときに、それを私にSMSまたは電子メールで送信することはできますか?

感謝

 

履歴にある注文が1つでもあれば、本日のストップトレードを行う

こんにちは。

どなたか教えてください。

- 注文が執行され、利益または損失で決済され、履歴に記載されています。

- 今、私は一日中このペア(シンボル)の取引を無効にする/新しい注文を開くのを停止したい。

- 翌日には新しい注文が実行できるようになります。

これは、"Max Trades Per Bar "機能の ようなものですが、履歴に基づくものです。

私は拡張コーディングスキルが不足しているため、いくつかの異なるテストコードスニペットは失敗します。

1 2008.01.07 02:36 sell 1 0.10 1.4730 0.0000 0.0000 0.00 10000.00

2 2008.01.07 03:14は1 0.10 1.4714 0.0000 0.0000 16.00 10016.00を閉じます。

3 2008.01.07 03:14売り 2 0.10 1.4712 0.0000 0.0000 0.00 10016.00円

4 2008.01.07 07:54終値2 0.10 1.4672 0.0000 0.0000 40.00 10056.00終値

5 2008.01.07 07:54 売り 3 0.10 1.4671 0.0000 0.0000 0.00 10056.00

6 2008.01.09 15:56終値3 0.10 1.4663 0.0000 0.0000 7.04 10063.04

7 2008.01.10 14:24 買い 4 0.10 1.4708 0.0000 0.0000 0.00 10063.04

8 2008.01.10 14:47近い4 0.10 1.4748 0.0000 0.0000 40.50 10103.54

どんなヘルプでも非常に感謝されます

よろしくお願いします。

マイケル

 
ixbone:
こんにちは。

どなたかご指導ください。

- 注文が執行され、損益が確定し、履歴に表示されています。

- このペア(シンボル)の新規注文を一日中取引不可にしたい。

- 翌日には新しい注文が実行できるようになります。

これは、"Max Trades Per Bar "機能のようなものですが、履歴に基づくものです。

私は拡張コーディングスキルが不足しているため、いくつかの異なるテストコードスニペットは失敗します。

1 2008.01.07 02:36 sell 1 0.10 1.4730 0.0000 0.0000 0.00 10000.00

2 2008.01.07 03:14は1 0.10 1.4714 0.0000 0.0000 16.00 10016.00を閉じます。

3 2008.01.07 03:14売り 2 0.10 1.4712 0.0000 0.0000 0.00 10016.00円

4 2008.01.07 07:54終値2 0.10 1.4672 0.0000 0.0000 40.00 10056.00終値

5 2008.01.07 07:54 売り 3 0.10 1.4671 0.0000 0.0000 0.00 10056.00

6 2008.01.09 15:56終値3 0.10 1.4663 0.0000 0.0000 7.04 10063.04

7 2008.01.10 14:24 買い 4 0.10 1.4708 0.0000 0.0000 0.00 10063.04

8 2008.01.10 14:47近い4 0.10 1.4748 0.0000 0.0000 40.50 10103.54

どんなヘルプでも非常に感謝されます

よろしくお願いします

マイケル

[lang=pl]こんにちは、マイケル。

一つ質問なのですが、その日のポジションがクローズした場合、新規のポジションをストップする必要があるのでしょうか?

ストップで決済された場合、ショートを開くことはできないのでしょうか?OP_BUYの場合、どのように作成するのか例があります(他の例も同様です)。

int time;

bool cond = true;

double stopLoss = 50;

double takeProfit = 70;

double lots = 0.1;

int orders = 0;

int magic = 123;

//+------------------------------------------------------------------+

//| エキスパート初期化関数

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| エキスパート初期化関数

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| エキスパートスタート機能

//+------------------------------------------------------------------+

int start()

{

Print(countOrders(magic, OP_BUY));

if(orders !=countOrders(magic,OP_BUY)) cond = false;

if(time != DayOfWeek()) cond = true;

if(cond)

OrderSend(Symbol(),OP_BUY,lots,Ask,1,sltpValue(Ask - stopLoss*Point, stopLoss),sltpValue(Bid+ takeProfit*Point,takeProfit),"", magic)を送信。

}

orders = countOrders(magic,OP_BUY);

time = DayOfWeek();

//----

return(0);

int count=0;

for(int i=0;i<オーダートータル();i++) { {

if(オーダーセレクト(i,SELECT_BY_POS)){。

if(オーダーマジック番号()==oMagic) { (オーダーマジック番号()==oMagic))

if(OrderSymbol()==Symbol()){。

if(OrderType()==oType || oType<0)){

count++;

}

}

}

}

}

return(count);

}

double sltpValue(double w1, int w2){.

if(w2 == 0)

return (0);

return (NormalizeDouble(w1, Digits));

}

//+------------------------------------------------------------------+

ご理解いただけたでしょうか?何か質問がある場合は、私に連絡してください。

乾杯。

Grzesiek[/lang]

 

こんにちはGrzesiek。

買い、売り、保留、キャンセルに関係なく、その日のうちに新しいポジションを持つことだけを停止します。

- 注文が利益確定、損失確定、キャンセル、保留が削除され、履歴に記録された場合、そのシンボル()に対して、その日のうちにいかなる種類の新しい取引も許可されません。

- 新しい日になれば、あらゆる種類の新しい注文が実行できるようになります。

私が行ったことは、機能していません。

extern bool Only1OrderPerDay=true;

if(Only1OrderPerDay==true){。

CountHistoryOrders();

void CountHistoryOrders(){(ヒストリーオーダーを数える。

for(int d=0;d<OrdersHistoryTotal();d++){

オーダーセレクト(d,SELECT_BY_POS,MODE_HISTORY);{。

if(OrderSymbol()==Symbol() && (OrderMagicNumber()==Magic || Magic==0))d++.OrderSymbol()==Symbol() && (OrderMagicNumber()==Magic || Magic=0))d++;

Print("HistoryOrders "+DoubleToStr(d,0))。

{

if(d>0 ...時間?...){。

を返します。

}}}}}

ありがとうございました

マイケル

g.pociejewski:
[lang=pl]こんにちは、マイケル。

一つ質問ですが、当日のポジションがクローズした場合、新規ポジションをストップする必要があるのでしょうか?

を開くことはできないのでしょうか?OP_BUYの場合、どのようにそれを作るかの例があります(他の人は似ています)。

int time;

bool cond = true;

double stopLoss = 50;

double takeProfit = 70;

double lots = 0.1;

int orders = 0;

int magic = 123;

//+------------------------------------------------------------------+

//| エキスパート初期化関数

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| エキスパート初期化関数

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| エキスパートスタート機能

//+------------------------------------------------------------------+

int start()

{

Print(countOrders(magic, OP_BUY));

if(orders !=countOrders(magic,OP_BUY)) cond = false;

if(time != DayOfWeek()) cond = true;

if(cond)

OrderSend(Symbol(),OP_BUY,lots,Ask,1,sltpValue(Ask - stopLoss*Point, stopLoss),sltpValue(Bid+ takeProfit*Point,takeProfit),"", magic)を送信。

}

orders = countOrders(magic,OP_BUY);

time = DayOfWeek();

//----

return(0);

int countOrders(int oMagic,int oType) { { { int count=0; { int count=0; { int count=0; { int count=0; { int count=1

int count=0;

for(int i=0;i<オーダートータル();i++) { {

if(オーダーセレクト(i,SELECT_BY_POS)){。

if(オーダーマジック番号()==oMagic) { (オーダーマジック番号()==oMagic))

if(OrderSymbol()==Symbol()){{(オーダーシンボル()==Symbol())

if(OrderType()==oType || oType<0)){

count++;

}

}

}

}

}

return(count);

}

double sltpValue(double w1, int w2){.

if(w2 == 0)

return (0);

return (NormalizeDouble(w1, Digits));

}

//+------------------------------------------------------------------+

ご理解いただけたでしょうか?何か質問がある場合は、私に連絡してください。

よろしくお願いします。

Grzesiek[/lang]さん
 

ストップロスの ドラッグ&ドロップ

こんにちは。

私はドラッグ&ドロップストップロスのスクリプトを持っており、それを使用するのが大好きです。しかし、私のブローカーの用量は、同じスカルタで2つの注文のために動作しません1つの注文を設定するだけです。私は同じ場所で2つの注文のためにストップロスを設定したいです。

何が問題なのでしょうか?それは他のブローカーに正常に動作しています。

助けてください

int start()

{

//----

int digits = MarketInfo(Symbol(),MODE_DIGITS);

double value = NormalizeDouble(WindowPriceOnDropped(),digits);

for(int i=OrdersTotal()-1;i>=0;i--)

{

if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

を続ける。

if(OrderSymbol()!=Symbol())

continue;

RefreshRates();

if(オーダータイプ()==OP_BUY)

if(value<Bid)

OrderModify(OrderTicket(),OrderOpenPrice(),value, OrderTakeProfit(),OrderExpiration(),White);

if(オーダータイプ()==OP_SELL)

if(value>Ask)

OrderModify(OrderTicket(),OrderOpenPrice(),value, OrderTakeProfit(),OrderExpiration(),White);

if((OrderType()==OP_BUYSTOP) || (OrderType()==OP_BUYLIMIT))

if(value<OrderOpenPrice()の場合)

OrderModify(OrderTicket(),OrderOpenPrice(),value, OrderTakeProfit(),OrderExpiration(),White);

if((OrderType()==OP_SELLSTOP) || (OrderType()==OP_SELLLIMIT))

if(値>OrderOpenPrice())

OrderModify(OrderTicket(),OrderOpenPrice(),value, OrderTakeProfit(),OrderExpiration(),White);

}

return(0);

}

//+------------------------------------------------------------------+

 

EAで2つの異なる指標のX Y座標の位置をどのように見つけることができますか?

同じサブウィンドウにあるMACDと 別のインジケータを言う?