無料でロボットをダウンロードする方法を見る
Facebook上で私たちを見つけてください。
私たちのファンページに参加してください
私たちのファンページに参加してください
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
SimpleTrade - MetaTrader 5のためのエキスパート
- 発行者:
- Vladimir Karputov
- ビュー:
- 775
- 評価:
- パブリッシュ済み:
- 2017.04.14 07:39
- アップデート済み:
- 2018.02.15 17:23
- このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
このエキスパートアドバイザーはゼロバーと3番目のバーの始値を比較します。
アイディアの著者—Oleksandr、MQL5コ―ドの著者—barabashkakvn
買いポジションを開く条件:
if(iOpen(0)>iOpen(3))
- ゼロバーの始値が3番目のバーの始値より高い場合。
売りポジションを開く条件:
if(iOpen(0)<=iOpen(3))
- ゼロバーの始値が3番目のバーの始値以下の場合。
ポジションは決済逆指値または次のバーの始めで決済されます。
EAは新しいバーの出現の瞬間に動作するため、ポジションのオープンエラーによってバー全体が失われないように、いくつかの保護ステップが装備されています。
たとえば、現在価格が更新できない場合は、タイマー(静的変数)をリセットする必要があります。
//--- 新しいバーで動作するため、現行価格の更新が失敗した場合には
//--- タイマーをリセットする
if(!RefreshRates())
{
curTime=iTime(1);
return;
}
//--- タイマーをリセットする
if(!RefreshRates())
{
curTime=iTime(1);
return;
}
また、取引操作の結果を確認します。
- BuyやSellメソッドはtrueを返すべきです。
- そしてResultDealメソッドはゼロ以外の値を返すべきです。
エラーが発生した場合はタイマーをリセットします。
if(iOpen(0)<=iOpen(3))
{
//--- 新しいバーで動作するため、現行価格の更新が失敗した場合には
//--- タイマーをリセットする
if(!RefreshRates())
{
curTime=iTime(1);
return;
}
//--- 新しいバーで動作するため、取引操作が失敗した場合には
//--- タイマーをリセットする
if(m_trade.Sell(Lots,NULL,m_symbol.Bid(),m_symbol.Ask()+StopLoss*m_adjusted_point))
if(m_trade.ResultDeal()!=0)
return;
curTime=iTime(1);
return;
}
{
//--- 新しいバーで動作するため、現行価格の更新が失敗した場合には
//--- タイマーをリセットする
if(!RefreshRates())
{
curTime=iTime(1);
return;
}
//--- 新しいバーで動作するため、取引操作が失敗した場合には
//--- タイマーをリセットする
if(m_trade.Sell(Lots,NULL,m_symbol.Bid(),m_symbol.Ask()+StopLoss*m_adjusted_point))
if(m_trade.ResultDeal()!=0)
return;
curTime=iTime(1);
return;
}
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/17274
ラッキー
ティックエキスパートアドバイザー前のティックの価格と現在の価格を比較します。
Money Fixed Margin固定証拠金レベルでロット値を計算する例です。つまり、10%を指定すると、証拠金の10%に等しいポジションが開かれます。